私のnode.jsプロジェクト内でスタブ呼出しにtestdouble
を使用しています。この特定の関数は約束をラップしており、関数内に複数のthen
呼び出しを持っています。testdoublejsを使用して複数の接続をテストする約束
function getUser (rethink, username) {
return new Promise((resolve, reject) => {
let r = database.connect();
r.then(conn => database.table(tablename).filter({username}))
.then(data => resolve(data))
.error(err => reject(err));
});
}
だから私はresolve
とreject
がエラー条件に基づいて正しく処理されているかどうかを判断したいと思っています。そこに私が検証する必要のあるカスタムロジックがあるとします。私のテストのために
import getUser from './user';
import td from 'testdouble';
test(t => {
const db = td.object();
const connect = td.function();
td.when(connect('options')).thenResolve();
const result = getUser(db, 'testuser');
t.verify(result);
}
問題は、接続の結果を約束する必要があるということであるので、私は解決したり拒否し、別の約束にする必要がある値で解決し、その後使用しています。
それに関連する行は、database.connect()
の結果であるとは限りません。
TypeError: Cannot read property 'then' of undefined
誰もがTest Doubleでこのタイプの呼び出しをスタブして成功しましたか?
エラーを表示できますか? –
@ ckross01エラーおよび/またはスタックトレースを表示していますか? – GPX
私は本質的に 'database.connect'の結果が約束ではないと言っているという質問にエラーを追加しました。 – ckross01