编辑:(添加测试代码)
嗨我有这个没有任何功能定义的工厂..我不知道怎么能为它编写单元测试(我看到很多例子但是仍然找不到办法做到这一点,如果你有什么建议或帮助我会非常感激) 我的工厂:
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不是对象
这意味着params是未定义的。我不知道为什么。我需要帮助来解决这个问题
答案 0 :(得分:1)
如果您正在使用业力,请记住在加载测试时包含所有依赖项(Metronic),在karma.conf.js文件中。
答案 1 :(得分:0)
describe('params', function () {
var params;
beforeEach(module('params'));
beforeEach(inject(function (_params_) {
params = _params_;
}));
it('Should ', function () {
expect(params).to.be.a('Object');
});
});