angularjs中的典型app.js文件如下:
var phonecatApp = angular.module('phonecatApp', [
'ngRoute',
'phonecatControllers'
]);
phonecatApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: 'PhoneListCtrl'
}).
when('/phones/:phoneId', {
templateUrl: 'partials/phone-detail.html',
controller: 'PhoneDetailCtrl'
}).
otherwise({
redirectTo: '/phones'
});
}]); // the example is taken from the angularjs tutorial
您如何对此文件进行单元测试?
这是一个有点前卫和百分比覆盖面向。首先测试它是否有意义? 我想是的,因为当导航到某个网址时,我想确保使用正确的路由。
注意:问题不仅在于测试$ routeProvider,还在于测试app.config()。
谢谢!
答案 0 :(得分:1)
您正在询问如何测试配置设置。
问这个有意义吗?嗯..我认为这是值得商榷的。我多次问自己这个问题。 我们如何确保我们用作配置的值是正确的?
我不确定将其称为“单元测试”是否正确,即使配置是流畅的配置。
我认为你不应该担心“测试”配置设置,因为“测试”配置会导致冗余和递归。让我进一步详细说明我的意思。添加配置设置时:
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: 'PhoneListCtrl'
}).
唯一要测试的是查看路线/phones
,您将使用controller
值'PhoneDetailCtrl'
。这样做不会测试任何东西,只是验证一些字符串对是正确的。这会引发递归问题。通过“验证”字符串值,您如何知道“测试”配置的人正在使用正确的值?你不应该测试测试吗?
从技术角度回答你的问题..如何测试..我不知道如何测试routeProvider的配置,但我认为你不应该这样做。