7
テストで、特定の関数が正しいパラメータで呼び出された場合、テストします。 JESTのドキュメントから、私はそれを行う正しい方法は何かを理解することができません。ユニットテストで今すぐJestで定義されたパラメータ(toHaveBeenCalledWith)で関数が呼び出されたかどうかをテストする方法
// add.js
function child(ch) {
const t = ch + 1;
// no return value here. Function has some other "side effect"
}
function main(a) {
if (a == 2) {
child(a + 2);
}
return a + 1;
}
exports.main = main;
exports.child = child;
:
だが、私はこのような何かを持っているとしましょう
1. 私はmain(1)
を実行し、それが2
を返し、child()
が呼び出されなかったことをテストします。
2. そして、私はmain(2)
を実行し、それは3
を返し、child(4)
はちょうど1回だけ呼び出されました。
私は今、このようなものを持っている:
// add-spec.js
module = require('./add');
describe('main',() => {
it('should add one and not call child Fn',() => {
expect(module.main(1)).toBe(2);
// TODO: child() was not called
});
it('should add one andcall child Fn',() => {
expect(module.main(2)).toBe(3);
// TODO: child() was called with param 4 exactly once
// expect(module.child).toHaveBeenCalledWith(4);
});
});
私はこのREPLでの実施例は、あまり理解されるであろう、https://repl.it/languages/jestでこれをテストしています。