我有以下文件:classAModel.js,代码如下:
class classAModel{
constructor(model) {
'ngInject';
if (!model) return {};
this.id = model.id;
this.name = model.name;
this.displayName = model.displayName;
}
}
export default classAModel;
此代码在另一个文件中定义为工厂:module.js:
import classAModelfrom './classAModel'
module.factory('ClassAModel', ClassAModel);
此代码在不在测试环境中时非常有效。它使用Webpack创建一个加载并运行的包。到现在为止还挺好。现在,问题是如何测试这个类。在我将代码更改为es6样式之前,它使用的是一个函数,它起作用。测试首先加载捆绑包,但是当我尝试注入工厂时(再次,与之前相同),我收到错误:未知提供者:modelProvider< - model< - classAModel 。我能理解为什么他认为存在问题,但我无法理解如何修复它。
此外,我想知道这是否是正确使用工厂的方法,而不是在类中创建一个工厂方法,获取模型,然后创建我的对象。
由于
答案 0 :(得分:0)
根据您提供的信息,这是一个测试工厂的简单测试用例。希望这是你正在寻找的。
import classAModel from './classAModel'
let classAInstance;
describe('classAModel', function() {
beforeEach(function() {
modelInstance = new Model();
classAInstance = new classAModel(modelInstance);
});
it('should have id provided by model', () => {
expect(classAInstance.id).toBe(modelInstance.id);
});
});