У меня есть модульный тест, который выглядит как этот
describe('Interceptor: myInterceptor', inject(function($rootScope){
var rootScope, routeParams = { id: null };
beforeEach(module('MyApp', function ($provide) {
$provide.factory('$routeParams', function() { // mock $routeParams
return routeParams;
});
rootScope = $rootScope.$new();
$provide.value('$rootScope', rootScope); // mock $rootScope
}));
....
}));
Однако, когда я «впрыснуть (функция ($ rootScope) {..», как я показал выше , я получаю следующее сообщение об ошибке (с помощью кармы и PhantomJS):.
PhantomJS 1.9.2 (Mac OS X) Interceptor: myInterceptor encountered a declaration exception FAILED
TypeError: 'null' is not an object (evaluating 'currentSpec.$modules')
at workFn (/dev/myapp/app/bower_components/angular-mocks/angular-mocks.js:2072)
at /dev/myapp/test/spec/interceptors/my-interceptor.js:67
....
Мой вопрос потенциально связан: http://stackoverflow.com/questions/15416006/how-do-inject-rootscope-into-an-angularjs-unit-test –