我已将以下函数设置为React组件中的onClick:
firstFunction = (id) => {
this.props.secondFunction(id);
}
我希望能够测试单击第一个函数,然后单击第二个函数。我可以测试使用以下测试调用第二个函数,该测试将通过:
describe('events can be invoked', () => {
it('has a onClick event that can be called', () => {
let mockFirstInvocation = sinon.spy();
let mockSecondInvocation = sinon.spy();
let wrapper = shallow(<ButtonOpt onClick={mockFirstInvocation} secondFunction={mockSecondInvocation})
wrapper.find('button').simulate('click');
expect(mockSecondInvocation.calledOnce).to.be.true;
})
});
但是,如果我添加这一行:
expect(mockFirstInvocation.calledOnce).to.be.true;
并且它被放置在mockSecondInvocation的期望之前,测试失败。
如何测试被调用的函数及其嵌套函数是否都被显式调用?
谢谢!
答案 0 :(得分:0)
可以使用下面的代码行来测试第二个功能。
CREATE TABLE counter(id INTEGER PRIMARY KEY AUTOINCREMENT, success REAL, number_won_games REAL, number_all_games REAL);
CREATE TRIGGER counter_update_success AFTER UPDATE ON counter
BEGIN
UPDATE counter set NEW.success=((NEW.number_won_games/NEW.number_all_games)*100.0);
END;
CREATE TRIGGER counter_create_success AFTER INSERT ON counter
BEGIN
UPDATE counter set NEW.success=((NEW.number_won_games/NEW.number_all_games)*100.0);
END;