Red*_*ron 6 javascript testing reactjs react-testing-library
这是我的测试
it('should run', async () => {
const { container } = renderWithContainers(<Wrapper />)
window.innerHeight = 50
await wait(() => fireEvent(window, new Event('resize')))
expect(getByTestId(container, 'myComponent')).toHaveStyle(`position: relative`)
})
Run Code Online (Sandbox Code Playgroud)
这失败了,因为原始位置是fixed并且我清楚地使用了container在调整大小事件触发之前定义的......那么我怎样才能让它“重新渲染”以使用更新的容器?在我的代码中,一旦它重新渲染,它就会有一个不同的位置(只是不在测试中)
我已经这样做了:
const { container, rerender } = renderWithContainers(<Wrapper />)
window.innerHeight = 50
await wait(() => fireEvent(window, new Event('resize')))
rerender(<Wrapper />
Run Code Online (Sandbox Code Playgroud)
但这会中断,invariant Violation: Could not find "store" react testing library但我已经将所有存储/提供程序逻辑都包含在里面,renderWithContainers那么我该如何重用它呢?
我想做这样的事情:rerender(renderWithContainers(<Wrapper />))但显然这行不通
只是为了非常清楚,我想在事件侦听器触发后重新渲染我的组件,以便我可以看到更新的组件
| 归档时间: |
|
| 查看次数: |
2071 次 |
| 最近记录: |