【问题标题】:Should resolved objects be tested in routes unit test in Angular?是否应该在 Angular 的路由单元测试中测试已解析的对象?
【发布时间】:2014-06-11 02:20:46
【问题描述】:

目前在路由单元测试中,我正在测试是否调用了适当的控制器和模板,例如 here。 此外,在某些路线中,我已经解决了对象。我可以像这样访问它们:

expect($route.routes['/someroute'].resolve.name_of_field).not.toBe(null);

我的问题是:我是否应该在路由单元测试中检查已解析的对象,因为它们一方面是路由配置的一部分,但另一方面我是否应该通过用于解析对象的单元测试服务来覆盖它?

【问题讨论】:

    标签: angularjs unit-testing karma-runner angularjs-routing


    【解决方案1】:

    我认为最好有单独的单元测试来解析对象。

    【讨论】:

      【解决方案2】:

      在对相关组件进行单元测试时,您应该将它们中的每一个视为具有特定的“工作”,并且您想测试它是否完成了该工作,例如控制器的工作可以是“接收数据,将它们传递给 $scope/ViewModel”,服务的工作是“提供数据”,路由器的工作是“给定一个 url,从正确的服务解析数据并将它们传递给正确的控制器”。

      所以要回答您的问题:在测试已解析的路由时,您应该模拟提供它们的服务,并验证使用来自服务的模拟解析调用了正确的控制器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        • 2018-01-15
        • 2016-06-08
        • 2022-06-23
        • 2017-02-11
        • 2021-02-22
        • 1970-01-01
        相关资源
        最近更新 更多