我试图断言在事件发生后调用我的React类方法的次数。我尝试过使用sinon.spy和jest.fn()无济于事。
使用sinon.spy:
test('Some test', (done) => {
const page = renderLookupPage();
const formInputButton = page.find('.button').first();
formInputButton.simulate('click');
let spy = sinon.spy(page.instance().myReactMethod);
const button = page.find('.tag').first();
button.simulate('click');
setTimeout(() => {
try {
console.log(spy.callCount); //0
done();
} catch (error) {
done.fail(error);
}
}, 100);
});
使用jest.fn():
test('Some test', (done) => {
const page = renderLookupPage();
const formInputButton = page.find('.button').first();
formInputButton.simulate('click');
page.instance().myReactMethod = jest.fn(() => {});
const button = page.find('.tag').first();
button.simulate('click');
setTimeout(() => {
try {
console.log(page.instance().myReactMethod.mock.calls.length); //0
done();
} catch (error) {
done.fail(error);
}
}, 100);
});
我确信有问题的方法肯定会被调用。更令人困惑的是方法中的console.log语句在
之前打印的console.log(spy.callCount)
任何正确方向的指针都将受到高度赞赏!干杯!
答案 0 :(得分:0)
解决方案很简单,
我移动了行
page.instance()。myReactMethod = jest.fn(()=> {});
在上一行之上:
formInputButton.simulate('单击&#39);
不确定为什么会这样,并且很高兴听到某人为什么会影响结果?
注意:formInputButton不会调用有问题的函数