【发布时间】:2019-11-16 17:07:39
【问题描述】:
概述:
- 我在使用 Enzyme 测试之前重构了脚本测试,但现在,我想使用 @testing-library/react
问题:
- 我在 @testing-library/react 中找不到 setState 的解决方案
【问题讨论】:
标签: setstate react-testing-library
概述:
问题:
【问题讨论】:
标签: setstate react-testing-library
无论使用测试库,使用setState 都是危险的方法。
那你最好做什么?提供道具、更改道具、调用道具(wrapper.find('button').filter(button => button.text() === 'Cancel').props().onClick() 用于酶,fireEvent.click(getByText(/Cancel/i)) 用于 RTL)并验证渲染的内容。
这样,您的测试将更短、更实际,并且在您更新被测组件后需要更少的更改。
【讨论】:
jest.mock() 模拟测试页脚的按钮,这样您将始终拥有@987654325 @ 是原生的<button>,即使真正的<Button> 开始渲染<svg>。因此,<Footer> 的测试将尽可能“隔离”。