我有一个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
请提出任何建议
答案 0 :(得分:2)
您无法正在导出lineObj
函数,而是调用并将结果(undefined
)分配给lineObj
属性。
您可以通过分配功能本身来解决问题
module.exports = {
lineObj: lineObject
}
进一步查看您的代码,您似乎希望lineObj()
能够根据您当前的实现向您提供一些内容,而不是。你需要实际返回一些东西,以便工作,例如。
function lineObject() {
return {
...
};
}
根据您的导出方式,您可以使用return this
来躲避您导出的对象(常见的链接模式)...但我怀疑这是您真正想要的做。