首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mocha中测试模块的全局变量

Mocha中测试模块的全局变量
EN

Stack Overflow用户
提问于 2018-06-03 08:46:50
回答 1查看 1.2K关注 0票数 1

我有一个模块要测试:

代码语言:javascript
复制
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;

我有一个测试文件,我正在尝试测试这个文件:

代码语言:javascript
复制
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的参数。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-03 10:00:46

我所需要做的就是将我的DELETE.js本地数组添加到这样的导出中:

代码语言:javascript
复制
module.exports.array = array;
module.exports.Deleter = Deleter;

然后,在测试文件中,我可以根据需要修改本地数组:

代码语言:javascript
复制
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);
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50664703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档