【发布时间】:2016-06-13 06:05:13
【问题描述】:
我一直在网上四处寻找,但似乎没有人真正将实际依赖项注入到使用 Jasmine 和 Karma 的 Angularjs 单元测试中。
我认为测试过程肯定存在关注点分离,但我也想知道它如何与当前使用的依赖项很好地集成......所以以防万一依赖项不能很好地与我的组件一起工作,我会注意的!
所以,我想知道如何注入实际的依赖项?到目前为止,我发现网上的文章都是关于用假的来嘲笑它的……但我想用真正的。现在,当我输入karma start 时,我收到Error: [$injector:unpr] Unknown provider: _Provider <- _ <-MyService 的错误
我像这样在 forEach 块中注入服务
beforeEach(angular.mock.inject(function(_MyService_) {
不知道是不是因为我没有使用假服务?
describe('MyCtrl', function() {
//Data Exposure Prep
var $controller;
var $rootScope;
var $scope;
var controller;
var MyService;
dd1 = {
itinerary: globalMockData.d1,//I stored globalMockData somewhere else
};
beforeEach(angular.mock.module('myapp'));
beforeEach(angular.mock.inject(function(_$rootScope_, _$controller_, _$httpBackend_) {
$rootScope = _$rootScope_;
$controller = _$controller_;
$httpBackend = _$httpBackend_;
$scope = $rootScope.$new();
controller = $controller('MyCtrl', { $scope: $scope }, dd1);
}));
//BASIC INFO
describe('should receive sth', function() {
it('finds sth', function() {
expect(controller.answer).toBeDefined();
});
});
});
【问题讨论】:
-
对我们有帮助的是您的代码或 plunker 的描述。请参阅:stackoverflow.com/help/mcve
-
@Dsafds 发布示例
标签: javascript angularjs unit-testing jasmine karma-jasmine