単体テストしたい node.js アプリに JS メソッドがあります。そのサービスにコールバックを渡すたびに、サービス メソッドを複数回呼び出します。コールバックは結果を蓄積します。
Jasmine を使用してサービス メソッドをスタブ化し、スタブが呼び出されるたびに、引数によって決定される応答でコールバックを呼び出すにはどうすればよいですか?
これは(のような)私がテストしている方法です:
function methodUnderTest() {
var result = [];
var f = function(response) {result.push(response)};
service_method(arg1, arg2, f);
service_method(other1, other2, f);
// Do something with the results...
}
service_method が arg1 と arg2 で呼び出されると、スタブが特定の応答で f コールバックを呼び出し、other1 と other2 で呼び出されると、別の特定の応答で同じコールバックを呼び出すように指定したいと思います。
別のフレームワークも検討します。(Nodeunit を試してみましたが、思いどおりに動作しませんでした。)