gpt4 book ai didi

unit-testing - 我们可以为 AngularJS RouteProvider 编写单元测试吗?

转载 作者:行者123 更新时间:2023-12-03 01:40:25 24 4
gpt4 key购买 nike

嗨,我正在使用 AngularJS 构建一个应用程序,但我陷入了单元测试部分。我知道如何为 Controller 等编写单元测试,但我不知道如何为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 编写单元测试?

最佳答案

是的,您可以,这是快速回答,下面是一小段代码,可以使用和扩展来测试路线将您带到您期望的地方。

describe('Testing routes', function() {
beforeEach(module('windscreens'));

var location, route, rootScope;

beforeEach(inject(
function( _$location_, _$route_, _$rootScope_ ) {
location = _$location_;
route = _$route_;
rootScope = _$rootScope_;
}));

describe('Login route', function() {
beforeEach(inject(
function($httpBackend) {
$httpBackend.expectGET('login')
.respond(200);
}));

it('should load the login page on successful load of /login', function() {
location.path('/login');
rootScope.$digest();
expect(route.current.controller).toBe('LoginCtrl')
});
});
});

关于unit-testing - 我们可以为 AngularJS RouteProvider 编写单元测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17963717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com