Javascript Jest和模拟输入字段的酶';s onClick法
我正在为一个简单的密码更新组件编写测试。我的组件有一个带有Javascript Jest和模拟输入字段的酶';s onClick法,javascript,unit-testing,jestjs,enzyme,Javascript,Unit Testing,Jestjs,Enzyme,我正在为一个简单的密码更新组件编写测试。我的组件有一个带有type=“checkbox”和onClick功能的输入字段。单击输入复选框时,我希望我的togglePassword功能运行。实际函数工作正常,但是在我的测试中,我无法模拟onClick事件 我的输入字段如下所示: <input id="toggle-password" type="checkbox" onClick={() => togglePassword()} /> 更新的钩子: const [pa
type=“checkbox”
和onClick
功能的输入字段。单击输入复选框时,我希望我的togglePassword
功能运行。实际函数工作正常,但是在我的测试中,我无法模拟onClick事件
我的输入字段如下所示:
<input
id="toggle-password"
type="checkbox"
onClick={() => togglePassword()}
/>
更新的钩子:
const [passType, setPassType] = useState("password");
最后是使用密码类型的输入字段:
<input id="create-password" type={passType} required />
我做了一个测试,看看是否调用了togglePassword
函数,而不是。我已经研究了一段时间了,我真的不知道如何在这里调用onClick
方法
<input id="create-password" type={passType} required />
it("toggles passwords", () => {
const onMock = jest.fn();
const wrapper = mount(
<NoAuthPasswordChange handleSubmit={onMock} />
);
const form = wrapper.find("#no-auth-password-change-form");
const createPass = form.find("#create-password");
const togglePass = form.find("#toggle-password");
createPass.simulate("change", { target: { value: "12345" } });
expect(createPass.props().type).toEqual("password");
togglePass.simulate("click");
wrapper.update();
expect(createPass.props().type).toEqual("text");
});