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
,这会给您导出对象的引用(常见的链接模式)...但我怀疑这真的是您的意思正在努力。
我有一个 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
,这会给您导出对象的引用(常见的链接模式)...但我怀疑这真的是您的意思正在努力。