用茉莉花测试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'

TypeScript - 茉莉花 - Chutzpah - AngularJS

reactjs中组件的单元测试功能使用业力和茉莉花

将角种子茉莉花单元测试转换为咖啡脚本

QUnit与茉莉花? [关闭]