Аз използвам Jest
и Enzyme
да правите единични тестове.
Във файла ми test.js имам
let wrapper = mount(<app />
Тестът ми натиска бутон в обвивката
wrapper.find("button").simulate("click")
и компонентът прави модал, който е извън опаковката.
Трябва да се позова на модала, за да мога да симулирам щракване върху бутон в него. Мога да получа препратка към модалния чрез document.body.children
, но не мога да направя нищо с него.
Как да използвам ензим за тестване на елемент, който е извън предоставената обвивка?
Отговори:
0 за отговор № 1Можете да тествате ButtonOnclik с едно определено състояние във вашето приложение React
Във вашия компонент
state={
data: "first State",
};
render(){
return (<div>
<button onClick={(e) => this.setState({data: "second State"})}>Test</button>
</div>
}
В теста можете да използвате Enzyme или само Jest
const wrapper = shallow(<Name Your Component/>);
it("test button", () => {
expect(wrapper.state().data).toBe("first State");
wrapper.find("button").simulate("click");
expect(wrapper.state().data).toBe("second State")
});
Надявам се да е полезно за вас :)