【问题标题】:Mocha paramterized test does not take the modified value of test data arrayMocha 参数化测试不取测试数据数组的修改值
【发布时间】:2019-01-09 06:11:03
【问题描述】:

这是我正在努力解决的简单问题。在第一个示例中,没有运行任何测试;而在第二个中,两个测试按预期运行。

没有按预期工作://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);
        });

});

我不明白为什么在第一个示例中it 没有采用testData 的修改值。

【问题讨论】:

    标签: node.js mocha.js parameterized-tests


    【解决方案1】:

    问题在于 mocha 如何设置测试套件。 before 函数中的回调函数已注册,但不会在 mocha-each 的 foreach 函数之前执行。

    相关问题 - Dynamically load test parameters?

    但是,要进行参数化测试,您可能不需要库,一个简单的预加载数组就可以工作 - Parameterized test in mocha。虽然,不同之处在于一个测试有多个断言。

    Demo - parameterized mocha tests

    【讨论】:

    • 如我所见,您共享的链接中有多个代码示例,而且我对 Node.js 比较陌生,所以如果您能调整我的非工作代码,我将不胜感激已在我的帖子中分享。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多