【发布时间】:2018-01-16 17:04:57
【问题描述】:
我试图断言我的 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)
任何指向正确方向的指针都将受到高度赞赏!干杯!
【问题讨论】:
标签: javascript reactjs testing sinon jestjs