【发布时间】:2018-07-19 09:08:00
【问题描述】:
我有这个组件测试
const component = mount(<MemoryRouter><Login/></MemoryRouter>);
const emailField = component.find('input[type="email"]');
const passwordField = component.find('input[type="password"]');
const mockedSubmitFunction=jest.fn();
component.find(Login).instance().onSubmit=mockedSubmitFunction;
emailField.simulate('change', { target: { value: testEmail } });
passwordField.simulate('change', { target: { value: testPassword } });
component.find('form').simulate('submit');
expect(mockedSubmitFunction).toBeCalled();
在我拥有的组件中
在构造函数中:-
this.onSubmit = this.onSubmit.bind(this);
和事件处理程序
onSubmit(event) {
event.preventDefault();
当我在 onSubmit 中设置断点时,它在执行模拟的 onSubmit 后进入组件函数,为什么会发生这种情况。
我以为它只会调用模拟的 onSubmit。
我在做什么不同?
代码沙盒:https://codesandbox.io/s/q95lv7vlrw
但沙箱显示找不到路径中的模块:'object-inspect/util.inspect' 相对于 '/node_modules/object-inspect/index.js' 出于某种原因,我猜这是不相关的
【问题讨论】:
-
在你拥有的组件中..什么都没有?你能提供你问题的codesandox重现吗?
-
@AndyTheos 它有一个渲染,但为了简单起见,我发出了它,它只显示两个字段用户名和密码字段,表单为
标签: reactjs unit-testing jestjs enzyme