使用react-testing-library进行渲染不起作用

时间:2019-11-25 13:26:51

标签: javascript reactjs testing 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`)
    })

这失败了,因为原始位置是fixed,并且在调整大小事件触发之前我显然使用了container定义了...那么我如何才能将其“渲染”以使用更新的容器? 在我的代码中,一旦重新渲染,它就会处于不同的位置(只是不在测试中)

我已经做到了:

const { container, rerender } = renderWithContainers(<Wrapper  />)
window.innerHeight = 50
await wait(() => fireEvent(window, new Event('resize')))

rerender(<Wrapper />

但是这与invariant Violation: Could not find "store" react testing library中断了,但是我已经将所有存储/提供程序逻辑包装在renderWithContainers中,那么我该如何重用?

我想做这样的事情:rerender(renderWithContainers(<Wrapper />)),但显然行不通

非常清楚,我想在事件监听器启动后重新渲染组件,以便可以看到更新的组件

0 个答案:

没有答案