#やりたいこと
以下のlambdaのテスト対象コード(main.js)をMochaでtestするときに
docClient.get(...).promise() 部分のスタブをsinonでつくりたい
main.js
const aws = require("aws-sdk");
const docClient = new aws.DynamoDB.DocumentClient(...);
async function main(event) {
await docClient.get(...).primise();
}
結論のテストコード
(***で囲まれているところがスタブのつくり方、それ意外はモジュールの設定)
main_test.js
const assert = require('assert');
const sinon = require("sinon");
const aws = require("aws-sdk");
const docClient = new aws.DynamoDB.DocumentClient(...);
describe("main_test", () => {
it("test1", async() => {
// ******ここスタブのつくりかたでハマった******
let stub_DB = sinon.stub(docClient,'get').returns({
promise: function () {return Promise.resolve({data:111})
});
//stub_DBはdocClient.get(...).promies()が呼ばれると{date:111}をreturnするスタブ
//***********************************
});
});
#参考