【发布时间】:2020-12-19 22:49:25
【问题描述】:
我在 React(Jest、Enzyme)中进行单元测试。我希望#mail 在输入更改时具有类'solutions__mail-input',但事实并非如此。代码:
inputEmail.simulate("change", {
target: { value: "test@test.com", name: "mail" },
});
然后:
expect(solutions.find("#mail").hasClass("solutions__mail-input")).toEqual(
true
);
而且没有绿化,输入的值变了,改class的逻辑也不错。
测试:
it("test valid mail", () => {
const solutions = shallow(<Solutions />);
const inputEmail = solutions.find("#mail");
inputEmail.simulate("change", {
target: { value: "test@test.com", name: "mail" },
});
expect(solutions.find("#mail").props().value).toBe("test@test.com");
expect(solutions.find("#mail").hasClass("solutions__mail-input")).toEqual(
true
);
});
组件:
<input
type="text"
placeholder="Email"
value={mail}
id="mail"
name="mail"
className={`solutions__mail-input${!readyToSend ? "--invalid" : ""}`}
onChange={(e) => {
changeMail(e.target.value);
validateMail();
}}
/>
【问题讨论】:
标签: reactjs unit-testing enzyme