我在爲AngularJS服務正確提供依賴項時遇到了很多麻煩。
我在StackOverflow上看到一些其他類似錯誤的帖子,但他們都沒有解決這個問題。
下面是應用程序的代碼:
cm.modules.app = angular.module('myApp', ['ngRoute', 'ngAnimate']);
myServiceName = function($http) {
// do stuff
};
myServiceName.prototype.value = 1;
cm.modules.app.service('defaultAlertFactoryA', myServiceName);
下面是測試代碼:
describe('test alertFactoryA', function() {
var $provide;
var mAlertFactoryA;
beforeEach(module(cm.modules.app));
beforeEach(angular.mock.module(function(_$provide_) {
$provide = _$provide_;
}));
beforeEach(function() {
inject(function($injector) {
mAlertFactoryA = $injector.get('defaultAlertFactoryA');
});
});
it('should work', function() {
expect(true).toBe(true);
});
});
以下是錯誤:
Error: [$injector:unpr] Unknown provider: defaultAlertFactoryAProvider <- defaultAlertFactoryA http://errors.angularjs.org/1.2.0-rc.2/ $injector/unpr?p0=defaultAlertFactoryAProvider%20%3C-%20defaultAlertFactoryA
問:我如何解決這個問題,從而測試通過?
包含在您的業力配置文件服務的文件? (我假設你正在使用業力) – dcodesmith
@dcodesmith我正在使用Karma ...是的;檢查我做了console.log(myServiceName);從測試內部解決了參考罰款 – eb80