【发布时间】:2014-09-17 12:21:58
【问题描述】:
我的 Jasmine 单元测试如下
describe('controllers', function () {
'use strict';
beforeEach(module('myapp.controllers'));
angular.mock.module('myapp.controllers', function ($provide) {
$provide.value('$localStorage', $localStorage);
});
it('should have a creationController', inject(function ($controller, _$rootScope_, localize) {
var scope = _$rootScope_.$new();
var localize = localize;
var myCtrl1 = $controller('creationController', {
$scope: scope,
localize: localize
});
expect(myCtrl1).toBeDefined();
}));
});
当我尝试执行测试时,出现以下错误
Error: [$injector:unpr] http://errors.angularjs.org/1.2.20/$injector/unpr?p0=localizeProvider%20%3C-%20localize
控制器中使用了一个称为“localize”的依赖项。但是我无法将它注入到这个单元测试中。
知道如何解决这个问题吗?
【问题讨论】:
-
你试过 beforeEach(module('myapp.controllers', '
')) 吗? -
@JorgeSainz 尝试了您的建议,现在我收到以下错误错误:[$injector:modulerr] errors.angularjs.org/1.2.20/$injector/…
-
你能创建一个codepen或某事吗?我有一个在 codepen 中使用 jasmine 2.0 和 angular 1.2.20 的示例,因此您可以分叉它:codepen.io/anon/pen/apAue
-
试试:angular.mock.inject(function($injector) { localize = $injector.get("localize"); });
标签: angularjs unit-testing jasmine karma-jasmine