加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 与React Router 2匹配的单元测试路由

发布时间:2020-12-15 05:06:55 所属栏目:百科 来源:网络整理
导读:我正在尝试为React应用程序添加单元测试,并希望测试React Router(2.0.1)提供的路由.我想测试一下我提供的特定路径是否与路径匹配.我正在使用Mocha编写测试并期待. 我查看了React Router存储库中的文档,但我能看到的唯一测试指南是解释如何测试 Link /以及它
我正在尝试为React应用程序添加单元测试,并希望测试React Router(2.0.1)提供的路由.我想测试一下我提供的特定路径是否与路径匹配.我正在使用Mocha编写测试并期待.

我查看了React Router存储库中的文档,但我能看到的唯一测试指南是解释如何测试< Link />以及它是如何呈现的.

说我有以下代码:

// import statements omitted for brevity

export const routes = (
    <Route path="/" component={App}>
        <IndexRoute component={Index} />
        <Route path="/foo">
            <IndexRoute component={FooIndex} />
            <Route path="add" component={FooAdd} />
            <Route path=":fooId" component={FooDetails} />
        </Route>
    </Route>
)

ReactDOM.render(
    <Router history={browserHistory}>{routes}</Router>,document.getElementById('app')
)

如何测试routes变量中创建的路由是否与以下内容匹配:

> /
> / foo
> / foo / add
> / foo / 25

但不是像以下路线:

> / foo / bar / 12
> /吧

基本上我想检查每个预期的URL格式是否有匹配它的路由,并且意外的URL与任何路由都不匹配.

我对路由所呈现的元素不感兴趣,所以不希望我的测试基于检查特定的东西是否被渲染,只是找到了匹配的路径,最好是某种方式来检查它是否在事实上预期的路线(我猜测检查组件的名称是什么?)

感谢任何帮助.

谢谢

我们在matchRoutes: https://github.com/ReactTraining/react-router/blob/v3/modules/__tests__/matchRoutes-test.js的测试中测试了这一点

你可以遵循这种模式.如果您无法通过引用标识路由,则可以确实对已呈现的组件进行断言.

由于未导出matchRoutes,您将需要使用匹配帮助程序(否则用于服务器端呈现),并检查renderProps.routes或renderProps.components.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读