Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript karma测试-服务注入错误_Javascript_Angularjs_Unit Testing_Karma Runner_Karma Jasmine - Fatal编程技术网

Javascript karma测试-服务注入错误

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

我已经建立了一个角度项目,使用npm,grunt,bower。。。和因果报应+茉莉花。 我被要求使用karma和jasmin为项目设置一些测试。 karma已在项目中设置,但从未使用过。 当我运行“grunt测试”时,所有服务都会出现注入错误,如下所示

错误:[$injector:unpr]未知提供程序:excelparserserviceProvider导致app.js和config.js

“app/scripts/***.js”-->指向所有服务控制器和指令

“test/mock/***.js”-->不存在

'test/spec/***.js'-->包含所有测试文件

有对应于应用程序每个部分的测试文件。我听说它是自动生成的。所以我觉得如果他们包含了错误,那就很奇怪了。但与excpelparserservice注入错误相关的是

'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
?这也可能只是一个区分大小写的问题编辑:很可能是这样,我在我的一个项目中进行了局部尝试,是的,案例必须匹配。