【发布时间】:2018-05-31 08:49:03
【问题描述】:
对于使用 jasmine 作为框架和 karma 作为测试运行程序的服务编写适当的单元测试,我几乎没有问题。
这是我在 example-service.js 中实现的:
export default class ExampleService {
constructor($resource, $http) {
'ngInject';
this.$resource = $resource;
this.$http = $http;
}
exampleMethodOne() {
//some code lines
}
exampleMethodTwo() {
//some code lines
}
}
ExampleService.selector = 'myExampleService';
这是我在测试中写的example-service.test.js
let myExampleService, $httpBackend;
beforeEach(() => {
angular
.module('exampleApp', [])
.service(ExampleService.selector, ExampleService);
angular.mock.module('exampleApp');
});
beforeEach(inject((_myExampleService_, _$httpBackend_) => {
myExampleService = _myExampleService_;
$httpBackend = _$httpBackend_;
}));
我已经导入了angular-mocks.js 和example-service.js
当我尝试这种情况时,控制台会抛出 Error: [$injector:unpr] Unknown provider: $resourceProvider <- $resource <- myExampleService
错误。
请帮我解决这个问题。
【问题讨论】:
-
请用实际的错误消息更新问题,因为它被截断了。即使答案解决了您的问题,这也可能对未来的读者有所帮助。
-
@estus 更新了问题:)
标签: javascript angularjs unit-testing ecmascript-6 karma-jasmine