【发布时间】:2020-03-08 11:44:59
【问题描述】:
我尝试检查回调,但 JEST 没有注意到它被调用。
我深入研究的非常简单的案例。调用类 N 的方法 Object 将调用类 D 的回调对象 d。它发生了 - 我确实看到了输出,但 Jest 无法识别它。
即我希望选项 1 和选项 2 都能通过测试,但实际上只有选项 2 成功。似乎 Jest 可能正在检查被调用的名称,尽管 https://jestjs.io/docs/en/jest-object#jestspyonobject-methodname 上的文档说
注意:默认情况下,jest.spyOn 也会调用 spy 方法。
class D{
callback(id){
console.log("called with "+id);
}
}
class N{
constructor(){
this.callback = undefined;
}
callEm(id){
this.callback(id);
}
}
var c = new N();
var d = new D();
c.callback = d.callback;
const spy = jest.spyOn(d, "callback");
c.callEm("crap"); // Option1: leads to test failure but shows print out
//d.callback("crap");// Option2: leads to test success and shows print out
expect(spy).toHaveBeenCalledTimes(1);
【问题讨论】:
标签: jestjs