测试反应重定向

时间:2018-05-16 22:22:45

标签: reactjs react-router enzyme

我有一个react组件,可能会导致呈现两个重定向之一,例如:

render () {
  if(condition) {
    return <Redirect to={'page1'} />
  } else {
    return <Redirect to={'page2'} />
  }
}

在酶测试中,我发现了如何测试是否正在呈现重定向:

expect(page.find('Redirect').length).toEqual(1)

但是我不确定如何配置测试以便我可以测试正在呈现哪些重定向。根据酶find文档,不可能使用find来定位标签以及属性,这使我相信我会以错误的方式解决这个问题。

1 个答案:

答案 0 :(得分:4)

您应该能够执行以下操作:

expect(page.containsMatchingElement(<Redirect to="page1" />)).toEqual(true)

这将允许您断言在正确的情况下呈现正确的重定向

或者,如果在安装组件时添加了更多道具,您可以执行以下操作:

page.find('Redirect').debug()

并使用RegExp手动匹配属性。