0
sinonとasync/awaitを使ってこのテストを実行するのに問題があります。Nodejs:sinonとasync/awaitによるテスト
// in file funcs
async function funcA(id) {
let url = getRoute53() + id
return await funcB(url);
}
async function funcB(url) {
// empty function
}
とテスト:私はfuncA
が正しいURLを生成していることを確認したconsole.log
経由
let funcs = require('./funcs');
...
// describe
let stubRoute53 = null;
let stubFuncB = null;
let route53 = 'https://sample-route53.com/'
let id = '1234'
let url = route53 + id;
beforeEach(() => {
stubRoute53 = sinon.stub(funcs, 'getRoute53').returns(route53);
stubFuncB = sinon.stub(funcs, 'funcB').resolves('Not interested in the output');
})
afterEach(() => {
stubRoute53.restore();
stubFuncB.restore();
})
it ('Should create a valid url and test to see if funcB was called with the correct args', async() => {
await funcs.funcA(id);
sinon.assert.calledWith(stubFuncB, url)
})
しかし、私は取得しています、ここで私がやっているものの例でありますエラーAssertError: expected funcB to be called with arguments
。 stubFuncB.getCall(0).args
と呼ぶと、nullが出力されます。だから、async/awaitの理解が不足しているかもしれませんが、なぜurlがその関数呼び出しに渡されていないのかわかりません。
ありがとうございました
これは非常に役に立ち、私のユニットテストに関する多くの問題を解決するのに役立ちました!オブジェクト内のファイルにすべての関数をエクスポートし始めます。ご協力いただきありがとうございます :) –