使用mocha

时间:2017-08-23 15:11:35

标签: javascript node.js mocha chai node-modules

我有一个myfunctions.js文件,其中包含函数

function lineObject(year, arrest, primary_Type, Description){
  this.year = year;
  this.arrest = arrest;
  this.primary_Type = primary_Type;
  this.Description = Description;
}

module.exports={
   lineObj : lineObject()
};

我的测试用例类似于bellow

    var chai = require('chai');
    var expect = chai.expect;
    const myfunction = require("../myfunctions");
    const lineObject = myfunction.lineObj;
    describe("Test suit", function(err) {
it("Test the fulsh option", function() {
     
  var retobj= lineObject('2017','yes','yes','tes');

       expect(retobj).to.have.property('year');
    });
});

但是,当我运行我的测试时,它会抛出错误TypeError: lineObject is not a function

请提出任何建议

1 个答案:

答案 0 :(得分:2)

您无法正在导出lineObj函数,而是调用并将结果(undefined)分配给lineObj属性。

您可以通过分配功能本身来解决问题

module.exports = {
    lineObj: lineObject
}

进一步查看您的代码,您似乎希望lineObj()能够根据您当前的实现向您提供一些内容,而不是。你需要实际返回一些东西,以便工作,例如。

function lineObject() {
    return {
       ...
    };
}

根据您的导出方式,您可以使用return this来躲避您导出的对象(常见的链接模式)...但我怀疑这是您真正想要的做。