Node.js 使用 mocha 的单元测试用例

Node.js unit test case using mocha

我有一个 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()
};

我的测试用例如下所示

    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

有什么建议吗

您没有正确导出 lineObj 函数,您正在 调用 它并将结果(应该是 undefined)分配给lineObj 属性.

您可以通过分配函数本身来修复

module.exports = {
    lineObj: lineObject
}

进一步查看您的代码,您似乎期望 lineObj() 能给您一些回报,而根据您当前的实施,这不会。你实际上需要 return 一些东西才能工作,例如

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

根据您的导出方式,您可以使用 return this,这会给您导出对象的引用(常见的链接模式)...但我怀疑这真的是您的意思正在努力。