- 前提: JS ES6、NodeJS
- テストフレームワーク:TAP
- モッキング図書館:testdouble.js
私は、メソッドの戻り値を模擬しようとしています私のクラスのこのエラーを受け取り続ける:関数の戻り値を正しくスタブするにはどうすればよいですか?
// Imports for unit testing
const tap = require('tap');
const Subject = require('../src/iTunesClient.js');
const td = require('testdouble');
let reqJson;
// Ensure the iTunes class methods are called
tap.test('iTunesClient class methods function as intended', (t) => {
t.beforeEach((ready) => {
reqJson = td.replace('../src/reqJson.js');
ready();
});
t.afterEach((ready) => {
td.reset();
ready();
});
t.test('iTunesClient.getData', (assert) => {
const callback = td.function();
const subject = new Subject();
subject.setTerm('abc 123');
subject.setURL();
td.when(reqJson.get(td.callback)).thenCallback(true);
subject.getData(callback);
td.verify(callback(true));
assert.end();
});
t.end();
});
具体的には、この行は私の問題に関連している:
td.verify(callback(true));
どのようにすることができますI偽物reqJson.get()
ためtrue
のコールバック値ここ
は私のテストコードですか?今、not ok Unsatisfied verification on test double. Wanted: - called with
(true)
. But there were no invocations of the test double.
Subject.geData()
は、別のファイル
reqJson.js
を呼び出す
iTunesClient
クラスのメソッドで、その
get()
メソッドを使用しています。