Javascript karma测试-服务注入错误
我已经建立了一个角度项目,使用npm,grunt,bower。。。和因果报应+茉莉花。 我被要求使用karma和jasmin为项目设置一些测试。 karma已在项目中设置,但从未使用过。 当我运行“grunt测试”时,所有服务都会出现注入错误,如下所示 错误:[$injector:unpr]未知提供程序:excelparserserviceProvider导致app.js和config.js “app/scripts/***.js”-->指向所有服务控制器和指令 “test/mock/***.js”-->不存在 'test/spec/***.js'-->包含所有测试文件 有对应于应用程序每个部分的测试文件。我听说它是自动生成的。所以我觉得如果他们包含了错误,那就很奇怪了。但与excpelparserservice注入错误相关的是Javascript karma测试-服务注入错误,javascript,angularjs,unit-testing,karma-runner,karma-jasmine,Javascript,Angularjs,Unit Testing,Karma Runner,Karma Jasmine,我已经建立了一个角度项目,使用npm,grunt,bower。。。和因果报应+茉莉花。 我被要求使用karma和jasmin为项目设置一些测试。 karma已在项目中设置,但从未使用过。 当我运行“grunt测试”时,所有服务都会出现注入错误,如下所示 错误:[$injector:unpr]未知提供程序:excelparserserviceProvider导致app.js和config.js “app/scripts/***.js”-->指向所有服务控制器和指令 “test/mock/***.j
'use strict';
describe('Service: excelparserservice', function () {
// load the service's module
beforeEach(module('batchUploadApp'));
// instantiate service
var Excelparserservice;
beforeEach(inject(function (_excelparserservice_) {
Excelparserservice = _excelparserservice_;
}));
it('should do something', function () {
expect(!!Excelparserservice).toBe(true);
});
});
服务的声明如下所示
'use strict';
angular.module('batchUploadApp')
.service('ExcelParserService',
function ExcelParserService($q, ExcelvalidationService, GeoLocationService) {
在一般工程中的应用
希望我的解释有用:)
谢谢。您可以这样定义和注册您的服务:
angular.module('batchUploadApp').service('ExcelParserService', ...
这意味着您以ExcelParserService
的名称注册它。另一方面,当您尝试将服务注入到测试中时,您使用其小写名称:
beforeEach(inject(function (_excelparserservice_) {
两个名称必须匹配,因此解决方案是更改参数的名称:
beforeEach(inject(function (_ExcelParserService_) {
您可以这样定义和注册服务:
angular.module('batchUploadApp').service('ExcelParserService', ...
这意味着您以ExcelParserService
的名称注册它。另一方面,当您尝试将服务注入到测试中时,您使用其小写名称:
beforeEach(inject(function (_excelparserservice_) {
两个名称必须匹配,因此解决方案是更改参数的名称:
beforeEach(inject(function (_ExcelParserService_) {
您是否尝试过注入
\uExcelParserService
?这也可能只是一个区分大小写的问题| | | | | | | |编辑:很可能是这种情况,我在我的一个项目中在本地尝试过,是的,案例必须匹配。您是否尝试过注入\u ExcelParserService
?这也可能只是一个区分大小写的问题编辑:很可能是这样,我在我的一个项目中进行了局部尝试,是的,案例必须匹配。