Проверка глобальных переменных модуля в Mocha - PullRequest
0 голосов
/ 03 июня 2018

У меня есть модуль, который я хочу проверить:

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);
    });
});

Я хочупроверить, действительно ли переменная array объединена, если я вызову функцию DeleteNumb .Но в консоли я получаю: «TEST: []», потому что переменная array , локальная для тестируемого модуля, действительно пуста.У меня вопрос, как изменить этот локальный массив для моего тестирования?Я не хочу анализировать массив в качестве аргумента для DeleteNumb .Заранее спасибо.

1 Ответ

0 голосов
/ 03 июня 2018

Все, что мне нужно было сделать, это добавить свой локальный массив 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);
    });
});
...