如何测试包装有react-redux提供程序的React组件

时间:2019-07-16 10:05:28

标签: reactjs react-redux react-router

我正在尝试深入研究React的酶测试,因为我目前正在从事一个需要它的项目。我的测试跑步者是jest

问题似乎很简单,但我一直无法弄清。

我有一个组件,如下所示。我所有的页面都有一个关联的Route,用React Router来实现。

const App = () => {
  return (
    <Provider store={store}>
      <Routes />
    </Provider>
  );
}

下面的代码测试组件呈现的图像是否崩溃。

it("renders without crashing", () => {
    const wrapper = shallow(<App />);
    expect(true).toBe(true);
    expect(toJson(wrapper)).toMatchSnapshot();
});

我想测试ProviderRoutes组件是否已渲染。我的研究使我了解到Provider不是常规的React组件。但是问题是我似乎无法掌握Routes组件。

以下是我尝试过的内容。每次尝试都带有标签。

it('renders provider', () => {
    const wrapper = mount(<App />);
    expect(wrapper.find(Routes)).to.have.lengthOf(1) # 1
    expect(wrapper.find(Provider)).to.have.lengthOf(1) # 2
    expect(wrapper.dive().find(Routes)).to.have.lengthOf(1) # 3
    expect(wrapper.dive().find(Provider)).to.have.lengthOf(1) # 4
})

但是所有这些都失败了。我需要帮助。

谢谢。

PS:我还需要使用React Router测试组件的帮助。

0 个答案:

没有答案