我有一个我想测试的模块:
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:[]”,因为正在测试的模块本地的 array 变量确实是空的。我的问题是如何为我的测试修改本地数组?我不想将数组解析为 DeleteNumb 的参数。提前谢谢。
答案 0 :(得分:0)
我需要做的就是将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);
});
});