【发布时间】:2013-11-25 06:08:24
【问题描述】:
我在运行业力单元脚本时遇到此错误,但我无法弄清楚原因
Error: [$injector:unpr] Unknown provider: FBURLProvider <- FBURL
这是我的指令代码
'use strict';
angular.module('userMenu', ['firebase'])
.directive('userMenu', function (FBURL, angularFire) {
return {
restrict: 'A',
scope: true ,
link: function postLink(scope, element, attrs) {
/**
* Returns the logged in user information
* @param {string} FBURL
* @param {object} scope
* @returns {promise}
*/
scope.getUserDataFromFirebase = function(FBURL, scope) {
var ref = new Firebase(FBURL + '/users/' + scope.auth.id);
return angularFire(ref, scope, 'user', {})
}
}
};
});
这是我的规范代码
'use strict';
describe('Directive: userMenu', function () {
// load the directive's module
beforeEach(module('userMenu', 'firebase'));
var element,
elementScope,
scope;
beforeEach(inject(function ($rootScope, $compile, _FBURL_, _angularFire_) {
scope = $rootScope.$new();
element = angular.element('<div user-menu></div>');
element = $compile(element)(scope);
elementScope = element.scope();
}));
it('should get user data', inject(function ($compile) {
console.log(scope);
}));
});
老实说,我对单元测试不太熟悉,所以我可能遗漏了一些非常明显的东西,但我们将不胜感激。
【问题讨论】:
标签: angularjs unit-testing firebase karma-runner angularfire