我有一个模块要测试:
var array = []; //<--- mobule local array
var Deleter = {
DeleteNumb: function(number) {
console.log("TEST", array); //<--- Console
var index = array.indexOf(number);
if(index != -1) {
array.splice(index, 1);
}
}
};
module.exports = Deleter;我有一个测试文件,我正在尝试测试这个文件:
var expect = require("chai").expect;
var Deleter = require("../DELETE.js");
describe("Testing Deleter", function() {
it("DeleteNumb", function() {
var array = [1,2,3,4,5]; // <--- test arrray
Deleter.DeleteNumb(3);
expect(array).to.be.length(4);
});
});如果我调用DeleteNumb函数,我想测试数组变量是否确实是拼接的。但是在控制台中,我得到了:"TEST:",因为被测试模块的本地数组变量确实是空的。我的问题是如何为我的测试修改本地数组?我不想将数组解析为DeleteNumb的参数。提前谢谢。
发布于 2018-06-03 10:00:46
我所需要做的就是将我的DELETE.js本地数组添加到这样的导出中:
module.exports.array = array;
module.exports.Deleter = Deleter;然后,在测试文件中,我可以根据需要修改本地数组:
var expect = require("chai").expect;
var Deleter = require("../DELETE.js").Deleter;
var testarray = require("../DELETE.js").array;
describe("Testing Deleter", function() {
it("DeleteNumb", function() {
testarray.push(1,2,3,4,5);//modifying DELETE.js array using module.exports reference
Deleter.DeleteNumb(3);
expect(testarray).to.be.length(4);
});
});https://stackoverflow.com/questions/50664703
复制相似问题