用茉莉花测试angularjs es6工厂
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用茉莉花测试angularjs es6工厂相关的知识,希望对你有一定的参考价值。
我有以下文件: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。我能理解为什么他认为存在问题,但我无法理解如何解决它。
此外,我想知道这是否是正确的工作方式,而不是在类中创建一个工厂方法,获取模型,然后创建我的对象。
谢谢
答案
根据您提供的信息,这是一个测试工厂的简单测试用例。希望这是你正在寻找的。
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);
});
});
以上是关于用茉莉花测试angularjs es6工厂的主要内容,如果未能解决你的问题,请参考以下文章
茉莉花匹配器功能未在 angularjs/karma 单元测试中加载
带有茉莉花的AngularJS 2单元测试组件面临错误,无法读取null的属性'firstChild'