我试图像这样在路由器上设置茉莉花测试
it('should map routes to controllers and templates', function() {
inject(function($route) {
module('igt');
expect($route.routes['/'].controller).toBe('mainPageCtrl');
expect($route.routes['/'].templateUrl).toEqual('html/pages/main.html');
// otherwise redirect to
expect($route.routes[null].redirectTo).toEqual('/')
});
});
和我的路由器文件是(只是因为它很长):
(function () {
'use strict';
angular
.module('igt')
.config(configure);
configure.$inject = ['$routeProvider', '$httpProvider'];
function configure($routeProvider, $httpProvider) {
$routeProvider
.when('/', {
templateUrl: 'html/pages/main.html',
controller: 'mainPageCtrl'
})
我确实在karma.conf.js文件中注入了这些文件:
// list of files / patterns to load in the browser
files: [
'../../node_modules/angular/angular.js',
'../../node_modules/angular-mocks/angular-mocks.js',
'../app.js',
'../router.js',
'unit/*.js'
],
现在,当我开始使用业力开始测试时,它给了我错误:
错误:[$ injector:unpr]未知提供商:$ routeProvider< - $ route
我的整个JS代码都封装在IIFE中,因此我甚至没有一个全局变量(我不知道它是否重要)。
为什么我有这个错误,我做错了什么?
答案 0 :(得分:0)
将其更改为
describe('Testing Routes', function () {
beforeEach(module('myApp'));
it('should map routes to controllers and templates', function($route) {
expect($route.routes['/'].controller).toBe('mainPageCtrl');