やりたいこと
以下のlambdaのテスト対象コード(main.js)をMochaでtestするときに
docClient.get(...).promise() 部分のsinon.stubをつくりたい
main.js
constaws=require("aws-sdk");constdocClient=newaws.DynamoDB.DocumentClient(...);asyncfunctionmain(event){awaitdocClient.get(...).primise();}
結論のテストコード
(***で囲まれているところがスタブのつくり方、それ意外はモジュールの設定)
main_test.js
constassert=require('assert');constsinon=require("sinon");constaws=require("aws-sdk");constdocClient=newaws.DynamoDB.DocumentClient(...);describe("main_test",()=>{it("test1",async()=>{// ******ここスタブのつくりかたでハマった******letstub_DB=sinon.stub(docClient,'get').callsFake(()=>{return{promise:function(){returnPromise.resolve({data:111})}};});//stub_DBはdocClient.get(...).promies()が呼ばれると{date:111}をreturnするスタブ//***********************************});});
参考
https://stackoverflow.com/questions/47135483/how-to-stub-promise-method-of-node-aws-sdk