Reactjs 与React路由器2匹配的单元测试路由

Reactjs 与React路由器2匹配的单元测试路由,reactjs,mocha.js,react-router,Reactjs,Mocha.js,React Router,我正在尝试为React应用程序添加单元测试,并希望测试React路由器(2.0.1)提供的路由。我想测试我提供的特定路径是否与路由匹配。我正在使用Mocha和expect编写测试 我已经浏览了React路由器存储库的文档,但我能看到的唯一测试指南是解释如何测试以及它是如何呈现的 假设我有以下代码: //为简洁起见省略了导入语句 导出常量路由=( ) ReactDOM.render( {routes}, document.getElementById('app') ) 如何测试在routes变量

我正在尝试为React应用程序添加单元测试,并希望测试React路由器(2.0.1)提供的路由。我想测试我提供的特定路径是否与路由匹配。我正在使用Mocha和expect编写测试

我已经浏览了React路由器存储库的文档,但我能看到的唯一测试指南是解释如何测试
以及它是如何呈现的

假设我有以下代码:

//为简洁起见省略了导入语句
导出常量路由=(
)
ReactDOM.render(
{routes},
document.getElementById('app')
)
如何测试在
routes
变量中创建的路由是否与以下匹配:

  • /
  • /福
  • /foo/add
  • /foo/25
但不是像这样的路线:

  • /foo/bar/12
  • /酒吧
本质上,我想检查每个预期的URL格式是否有一个与之匹配的路由,以及意外的URL是否与任何路由都不匹配

我对路由所呈现的元素不感兴趣,所以我不想将测试建立在检查是否呈现特定对象的基础上,只想找到匹配的路由,最好是通过某种方式检查它是否是预期的路由(我猜是检查组件的名称还是什么?)

非常感谢您的帮助


谢谢

我们在
匹配路线测试中测试了这一点:

你可以遵循这个模式。如果不能通过引用标识路由,那么也可以对渲染的组件进行断言


由于未导出
matchRoutes
,您需要使用
match
帮助程序(否则用于服务器端渲染),并选中
renderProps.routes
renderProps.components

谢谢。我已经看过了你链接到的测试,它们似乎是要做的。我遇到的第一个问题是
matchRoutes()
函数似乎根本没有导出到
index.js
文件中,所以我有点困惑于如何访问它?