我如何为 angularJs 工厂编写单元测试
How can I write a unit test for angularJs Factory
编辑:(添加测试代码)
嗨,我有这个工厂,它没有任何函数定义。我不知道如何为它编写单元测试(我看到了很多示例,但仍然找不到方法来做如果您对此有任何建议或帮助,我将不胜感激)
我的工厂:
MyApp.factory('params', ['$rootScope', function ($rootScope) {
// supported languages
var params = {
layout: {
pageAutoScrollOnLoad: 2000
pageSidebarClosed: false,
pageBodySolid: false,
},
layoutImgPath: Metronic.getAssetsPath() + 'app/img/',
layoutCssPath: Metronic.getAssetsPath() + 'app/css/'
};
$rootScope.params = params;
return params;
}]);
正如@MoLow 提出的答案,我尝试做完全相同的事情。
describe('params', function () {
var params;
beforeEach(module('params'));
beforeEach(inject(function (_params_) {
params = _params_;
}));
it('Should ', function () {
expect(params).to.be.a('Object');
});
});
。但是我有这个错误:
TypeError: undefined is not an object
这意味着参数是 undefined.I 不知道为什么。我需要帮助来解决这个问题
describe('params', function () {
var params;
beforeEach(module('params'));
beforeEach(inject(function (_params_) {
params = _params_;
}));
it('Should ', function () {
expect(params).to.be.a('Object');
});
});
如果您使用 karma,请记住在加载测试时将所有依赖项 (Metronic) 包含在 karma.conf.js 文件中。
编辑:(添加测试代码)
嗨,我有这个工厂,它没有任何函数定义。我不知道如何为它编写单元测试(我看到了很多示例,但仍然找不到方法来做如果您对此有任何建议或帮助,我将不胜感激) 我的工厂:
MyApp.factory('params', ['$rootScope', function ($rootScope) {
// supported languages
var params = {
layout: {
pageAutoScrollOnLoad: 2000
pageSidebarClosed: false,
pageBodySolid: false,
},
layoutImgPath: Metronic.getAssetsPath() + 'app/img/',
layoutCssPath: Metronic.getAssetsPath() + 'app/css/'
};
$rootScope.params = params;
return params;
}]);
正如@MoLow 提出的答案,我尝试做完全相同的事情。
describe('params', function () {
var params;
beforeEach(module('params'));
beforeEach(inject(function (_params_) {
params = _params_;
}));
it('Should ', function () {
expect(params).to.be.a('Object');
});
});
。但是我有这个错误:
TypeError: undefined is not an object
这意味着参数是 undefined.I 不知道为什么。我需要帮助来解决这个问题
describe('params', function () {
var params;
beforeEach(module('params'));
beforeEach(inject(function (_params_) {
params = _params_;
}));
it('Should ', function () {
expect(params).to.be.a('Object');
});
});
如果您使用 karma,请记住在加载测试时将所有依赖项 (Metronic) 包含在 karma.conf.js 文件中。