【发布时间】:2014-08-13 17:11:47
【问题描述】:
我在我的应用程序中使用 AngularJS 服务。我了解到我创建的服务不可靠。出于这个原因,我想围绕它构建一些单元测试。虽然该服务在我的 AngularJS 应用程序中运行良好,但我无法让它与 Jasmine 一起使用。就像我无法加载任何模块一样。我已经将代码剥离到了赤裸裸的骨头上。我不明白我做错了什么。我的代码如下所示:
myService.js
'use strict';
angular.module('customModule', [])
.factory('$serviceName', [function () {
return {
isAvailable: function () {
return true;
}
};
}]
);
myService.spec.js
describe('customModule', function() {
beforeEach(function() {
console.log('loading module...');
module('customModule');
});
describe('$serviceName', function () {
var myService = null;
beforeEach(inject(function ($serviceName) {
console.log('loading service...');
myService = $serviceName;
}));
it('should work', function () {
console.log('testing');
var isAvailable = myService.isAvailable();
console.log(isAvailable);
expect(1 + 2).toEqual(3);
});
});
})
gruntfile.js
'use strict';
module.exports = function (grunt) {
grunt.initConfig({
jasmine: {
unitTests: {
src: 'test/*.js',
}
}
});
require('load-grunt-tasks')(grunt);
grunt.registerTask('default', ['jasmine:unitTests']);
};
我的茉莉花测试正在运行。但是,它就像 myService.js 没有被加载。我不知道该怎么做。我也不确定如何在测试中获得“角度”(在 myService.js 中使用)。
感谢您的帮助。
【问题讨论】:
标签: javascript angularjs gruntjs jasmine