Angularjs 使用karma/jasmine测试角度服务时未定义服务
我正在尝试使用karma运行以下测试用例Angularjs 使用karma/jasmine测试角度服务时未定义服务,angularjs,unit-testing,jasmine,karma-jasmine,Angularjs,Unit Testing,Jasmine,Karma Jasmine,我正在尝试使用karma运行以下测试用例 'use strict'; describe('companyService', function () { var $httpBackend, companyService; beforeEach(module('MyCompany')); beforeEach(inject(function (_$httpBackend_, _companyService_) { $httpBackend = _$ht
'use strict';
describe('companyService', function () {
var $httpBackend, companyService;
beforeEach(module('MyCompany'));
beforeEach(inject(function (_$httpBackend_, _companyService_) {
$httpBackend = _$httpBackend_;
companyService = _companyService_;
}));
it('should return a promise for getCompany function', function () {
expect(typeof companyService.getCompany('foobar').then).toBe('function');
});
});
下面是Companyservice.js
angular.module('myCompany').factory('companyService',
function($http, MyCompanyApiProvider, $upload) {
'use strict';
var _company = null;
function getCompany(companyId) {
var x = $http.get(MyCompanyApiProvider.url('companies/' + companyId));
return x;
}
return {
getCompany: getCompany
};
}
);
在调用getcompany方法之前,我收到一个错误,说companyService未定义。我错过了什么
堆栈跟踪
Firefox 38.0.0 (Windows 8.1) companyService should return a promise for getCompany function FAILED
minErr/<@C:/WebApiRole/bower_components/angular/angular.js:63:12
loadModules/<@C:/WebApiRole/bower_components/angular/angular.js:4138:15
forEach@C:/WebApiRole/bower_components/angular/angular.js:323:11
loadModules@C:/bower_components/angular/angular.js:4099:5
createInjector@C:/bower_components/angular/angular.js:4025:11
workFn@C:/WebApiRole/node_modules/angular-mocks/angular-mocks.js:2409:44
TypeError: companyService is undefined in
C:/WebApiRole/test/company/CompanyServiceSpec.js (line 15)
@C:/WebApiRole/test/company/CompanyServiceSpec.js:15:16
Firefox 38.0.0 (Windows 8.1): Executed 1 of 1 (1 FAILED) ERROR (0.035 secs / 0.015 secs)
该服务被添加到模块名
myCompany
:
angular.module('myCompany').factory('companyService',
beforeEach(module('MyCompany'));
但是测试没有加载该模块。它加载名为MyCompany的模块:
angular.module('myCompany').factory('companyService',
beforeEach(module('MyCompany'));
该服务被添加到模块名
myCompany
:
angular.module('myCompany').factory('companyService',
beforeEach(module('MyCompany'));
但是测试没有加载该模块。它加载名为MyCompany的模块:
angular.module('myCompany').factory('companyService',
beforeEach(module('MyCompany'));
该服务被添加到模块名
myCompany
:
angular.module('myCompany').factory('companyService',
beforeEach(module('MyCompany'));
但是测试没有加载该模块。它加载名为MyCompany的模块:
angular.module('myCompany').factory('companyService',
beforeEach(module('MyCompany'));
该服务被添加到模块名
myCompany
:
angular.module('myCompany').factory('companyService',
beforeEach(module('MyCompany'));
但是测试没有加载该模块。它加载名为MyCompany的模块:
angular.module('myCompany').factory('companyService',
beforeEach(module('MyCompany'));
发布错误的完整堆栈跟踪/准确和完整的错误消息。@JBNizet我已在上面添加堆栈跟踪发布错误的完整堆栈跟踪/准确和完整的错误消息。@JBNizet我已在上面添加堆栈跟踪发布错误的完整堆栈跟踪/准确和完整的错误消息。@JBNizet我已添加stacktrace Upper发布错误的完整堆栈跟踪/准确完整的错误消息。@JBNizet我已经在上面添加了stacktrace,恐怕这不是问题所在。我在复制代码时犯了一个小错误。这实际上是我在这两个地方的名字(myCompany)。但是问题来自不同的角度,那么定义服务的JS文件可能不是由karma加载的。编辑您的问题并显示项目的目录结构和karma配置。不要再犯同样的错误。发布真实内容。添加了karma.conf.js文件和您要求karma加载的文件夹结构
app/company/CompanyService.js
。您的文件名为app/company/companyservice.js
。谢谢。但这不是问题的原因,恐怕这不是问题所在。我在复制代码时犯了一个小错误。这实际上是我在这两个地方的名字(myCompany)。但是问题来自不同的角度,那么定义服务的JS文件可能不是由karma加载的。编辑您的问题并显示项目的目录结构和karma配置。不要再犯同样的错误。发布真实内容。添加了karma.conf.js文件和您要求karma加载的文件夹结构app/company/CompanyService.js
。您的文件名为app/company/companyservice.js
。谢谢。但这不是问题的原因,恐怕这不是问题所在。我在复制代码时犯了一个小错误。这实际上是我在这两个地方的名字(myCompany)。但是问题来自不同的角度,那么定义服务的JS文件可能不是由karma加载的。编辑您的问题并显示项目的目录结构和karma配置。不要再犯同样的错误。发布真实内容。添加了karma.conf.js文件和您要求karma加载的文件夹结构app/company/CompanyService.js
。您的文件名为app/company/companyservice.js
。谢谢。但这不是问题的原因,恐怕这不是问题所在。我在复制代码时犯了一个小错误。这实际上是我在这两个地方的名字(myCompany)。但是问题来自不同的角度,那么定义服务的JS文件可能不是由karma加载的。编辑您的问题并显示项目的目录结构和karma配置。不要再犯同样的错误。发布真实内容。添加了karma.conf.js文件和您要求karma加载的文件夹结构app/company/CompanyService.js
。您的文件名为app/company/companyservice.js
。谢谢。但这并不是这个问题的原因。