这是我正在努力解决的简单问题。在第一个示例中,不运行任何测试;而在第二个测试中,按预期运行了两个测试。
无法按预期工作:// 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
的修改值。
答案 0 :(得分:0)
问题在于mocha如何设置测试套件。
before
函数中的回调函数已注册,但未在mocha-each的foreach
函数之前执行。
相关问题-Dynamically load test parameters?
但是,要进行参数化测试,您可能不需要库,可以使用简单的预加载数组-Parameterized test in mocha。虽然,不同之处在于有一个包含多个断言的测试。