使用 react-testing-library 重新渲染不起作用

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 />))但显然这行不通

只是为了非常清楚,我想在事件侦听器触发后重新渲染我的组件,以便我可以看到更新的组件