【发布时间】:2013-07-31 14:02:45
【问题描述】:
您好,我正在使用 AngularJS 构建应用程序,但我被困在单元测试部分。我知道如何为控制器编写单元测试,但我不知道如何为 routeProvider 编写单元测试。我正在使用 Jasmine 编写单元测试。
我的路线提供者将如下所示;
var app = angular.module('MyApp', ['ngResource'])
app.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'app/views/main.html',
controller: 'MainCtrl'
})
.when('/home/:PartyID', {
templateUrl: 'app/views/home.html',
controller: 'HomeCtrl'
})
.when('/edit/:PartyID', {
templateUrl: 'app/views/update_profile.html',
controller: 'EditCtrl'
})
.when('/route', {
templateUrl: 'app/views/route.html',
controller: 'RouteCtrl'
})
.when('/signup', {
templateUrl: 'app/views/signup.html',
controller: 'SignupCtrl'
})
.when('/login', {
templateUrl: 'app/views/login.html',
controller: 'LoginCtrl'
})
.otherwise({
redirectTo: '/'
});
});
如何使用 Jasmine 为这个 routeProvider 编写单元测试?
【问题讨论】:
-
我猜你不想为 routeProvider 编写测试,而是检查你的 url。这是在教程docs.angularjs.org/tutorial/step_07
-
所以你说我不需要为 routeProvider 编写单元测试,而是编写 end2end 测试来检查 url。对吗?
-
是的,routeprovider 是一个已经被有角的家伙测试过的服务。您只需使用一个实例来修改存储您的 url 的对象。
-
单元测试路线是完全合理的。目的不是测试(即将弃用)$routeProvider,而是测试 url、模板和控制器之间的映射。 Here 就是一个例子。
-
单元测试意味着测试你的代码单元的一些内部逻辑。您要做的是测试配置。这超出了您的所有“单元”,只能在端到端测试中进行测试。
标签: unit-testing angularjs jasmine