测试包含反应路由器链接与酶的组件

时间:2017-10-01 19:58:21

标签: reactjs enzyme

我正在使用酶。我需要测试一个将路由器Link作为子进行反应的组件。我需要以下

  • 使用酶的mount()装载组件,因为我需要测试整个组件树
  • 在属性发生变化时测试组件的行为。

我无法使用StaticRouter或MemoryRouter包装我的组件,因为酶只允许在根级别使用setProps()。

我目前的解决方案是使用sinon存根链接渲染方法。这是一个简短的例子。

nums[i] != 0

是否有更好的方法可以避免错误“不变违规:您不应该使用路由器外的链接”?

由于

1 个答案:

答案 0 :(得分:1)

不确定这是否对任何人都有帮助,但对于我的情况,我设法绕过浅层渲染顶级组件,然后使用dive()来获取我需要的部分。

loginPage = shallow(<LoginPage />);

...

loginPage.find(LoginForm).dive().find({name:"user"}).simulate("change", userEventMock);