web-dev-qa-db-ja.com

コールバック関数sinonを呼び出すモックメソッド

Sinonを使用してコールバックを呼び出す外部メソッドをどのようにモックしますか?次のコードの例では、getTextはコールバック関数の応答として「文字列」を返す必要があります

sinon.stub(a, 'getText').returns('a string')
let cb = function(err, response) {
   console.log(response)
}
a.getText('abc', cb)

コールバック関数cbを呼び出すため、出力「文字列」を生成する必要がありますが、出力はありません

8
Stanley

callsArgWith を使用できます

sinon.stub(a, 'getText').callsArgWith(1, null, 'kkk')
let cb = function(err, response) {
   console.log(response)
}
a.getText('abc', cb)
17
Yury Tarabanko
_sinon.stub(a, 'getText').yields(null, 'a string');
_

yields() は、指定された引数(_null, 'a string'_)を使用してスタブ関数に渡される最初の関数引数を呼び出します。

13
robertklep