角度测试未知提供程序
Angular test Unknown provider
我目前正在尝试测试view1(home.js),在view1中,我使用从view1_test.js移动到app.js级别的筛选器和指令。我的所有测试过去都是通过的,现在任何引用过滤器或指令的测试都失败了。我想知道我是否需要创建一个app_test.js,或者有没有办法修复测试以使其仍然有效?下面是我所说的一个例子。
app.js
'use strict';
// Declare app level module which depends on views, and components
angular.module('myApp', [
'ngRoute',
'myApp.home',
'ngAnimate',
'ui.bootstrap',
'ui.date'
]).
config(['$routeProvider','$httpProvider','$locationProvider', function($routeProvider) {
$routeProvider.otherwise({redirectTo: '/home'});
}])
.filter('upper', function () {
return function (input) {
return input.toUpperCase();
};
})
view1.js(home.js)
'use strict';
angular.module('myApp.home', ['ngRoute'])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/home', {
templateUrl: 'home/home.html',
controller: 'HomeCtrl'
});
}])
view1_test.js(home_test.js)
'use strict';
describe('myApp.home module', function () {
beforeEach(module('myApp.home'));
}
describe('Filter: upper', function () {
var upperFilter;
beforeEach(inject(function (_upperFilter_) {
upperFilter = _upperFilter_;
}));
it('should be able to uppercase an entire input', function () {
expect(upperFilter('hello')).toBe('HELLO');
expect(upperFilter('hello world')).toBe('HELLO WORLD');
});
});
运行此测试时。我得到这个:
Chrome 47.0.2526(Windows 7 0.0.0)myApp.home模块过滤器:上层应该能够大写整个输入FAILED错误:[$injector:unp]未知提供程序:upperFilterProvider<-上部过滤器http://errors.angularjs.org/1.4.7/$injector/unp?p0=上部过滤器提供程序%20%3C-%20上部过滤器位于C:''/webroot/member_portal/app/bower_components/angular/angular.js:68:12位于C:''/webroot/member_portal/app/bower_components/angular/angular.js:489:19在Object.getService[as-get](C:''/webroot/member_portal/app/bower_components/angular/angular.js:4437:39)位于C:''/webroot/member_portal/app/bower_components/angular/angular.js:4294:45在getService(C:''/webroot/member_portal/app/bower_components/angular/angular.js:4437:39)在Object.invoke(C:''/webroot/member_portal/app/bower_contensions/angular/angular.js:4469:13)在Object.workFn(C:''/webroot/member_portal/app/bower_contensions/angular mocks/angular mocks.js:2438:20)错误:申报位置在window.inject.angular.mock.inject(C:''/webroot/member_portal/app/bower_contents/angular mocks/angular micks.js:2409:25)套房。(C:''/webroot/member_portal/app/home/home_test.js:766:20)套房。(C:''/webroot/member_portal/app/home/home_test.js:763:5)位于C:''/webroot/member_portal/app/home/home_test.js:3:1TypeError:upperFilter不是函数在对象处。(C:''/webroot/member_portal/app/home/home_test.js:771:20)Chrome 47.0.2526(Windows 7 0.0.0):执行54中的1(1失败)(跳过53)错误(0.327秒/0.05秒)
您为每个文件声明了2个不同的模块
app.js -> angular.module('myApp', [ ...
view1.js -> angular.module('myApp.home', ['ngRoute'])
在您的home_test.js
中,您应该注入myApp
模块,而不是myApp.home
,因为您已将其移动到该模块
- 为什么我得到错误:$injector:unp未知提供程序
- 在出厂时注入服务错误: [$injector:unpr] 未知提供程序: $scopeProvider <- $scop
- AngularJS错误:$injector:unp未知提供程序-$modalInstanceProvider
- AngularJS:未知的提供程序错误
- Angular小部件中的Angular Grid返回错误:[$injector:unp]未知提供程序:
- 有角度的“;未知提供者”;在约曼应用程序中使用Grunt Build缩小后出错
- 获取解析值的未知提供程序错误
- $provide.decorator为指令提供未知的提供程序
- jQuery - 追加/替换事件侦听器(当事件处理程序未知时)
- angular.js:13294错误:[$injector:unp]未知提供程序:cityResourceProvide
- 角度未知提供程序,无法POST/注册
- 未知提供程序:在angular.bootstrap之前使用$injector获取$location服务时使用$rootE
- Watir Web驱动程序引发未知Javascript错误
- ionic.bundle.js:25642错误:[$injector:unp]未知提供程序:$cordovaGeoloc
- 密钥斗篷未知提供程序错误
- Angular 未知提供程序,出厂时包装在匿名函数中
- ui选择未知提供程序
- 错误: [$injector:unpr] 未知提供程序: setPageProvider <- setPage
- 错误:[$injector:unp]在控制器中注入routeprovider服务时,jasmine测试中的提供程序未知
- uib模态提供程序未知单元测试