Параметр Mocha не принимает измененное значение массива данных теста - PullRequest
0 голосов
/ 09 января 2019

Вот простая проблема, с которой я борюсь. В первом примере тесты не выполняются; тогда как во втором два теста выполняются, как и ожидалось.

Не работает должным образом: // testData заполняется внутри before здесь

// test.js
const assert = require('assert');
const forEach = require('mocha-each');

describe('compare()', () => {

    testData = [];

    before(function (done) {
        testData = [[1, 1], [2, 2]];
        done();
    });

    forEach(testData)
        .it('compares %d and %d', (baseline, actual) => {
            assert(baseline == actual);
        });

});

Работает как положено: // * здесь используется жестко закодированный массив testData

// test.js
const assert = require('assert');
const forEach = require('mocha-each');

describe('compare()', () => {

    forEach([[1, 1], [2, 2]])
        .it('compares %d and %d', (baseline, actual) => {
            assert(baseline == actual);
        });

});

Я не понимаю, почему измененное значение testData не принимается it в первом примере.

1 Ответ

0 голосов
/ 09 января 2019

Проблема в том, как mocha настраивает набор тестов. Функция обратного вызова в функции before регистрируется, но не выполняется до foreach функции mocha-each.

Связанная проблема - Динамически загружать параметры теста?

Однако для параметризованного теста вам может не потребоваться библиотека, просто сработает предварительно загруженный массив - Параметризованный тест в mocha . Хотя разница в том, что есть один тест с несколькими утверждениями.

Демо - параметризованные тесты мокко

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...