如何使用 Mocha 创建参数化测试?
示例用例:我有 10 个类,它们是同一接口(interface)的 10 个不同实现。我想为每个类(class)运行完全相同的一套测试。我可以创建一个函数,将类作为参数并使用该类运行所有测试,但是我将在一个函数中进行所有测试 - 我将无法将它们很好地分离到不同的“描述”子句。 ..
在 Mocha 中是否有一种自然的方法可以做到这一点?
最佳答案
实际上 mocha 文档指定了如何创建你想要的 here
describe('add()', function() {
var tests = [
{args: [1, 2], expected: 3},
{args: [1, 2, 3], expected: 6},
{args: [1, 2, 3, 4], expected: 10}
];
tests.forEach(function(test) {
it('correctly adds ' + test.args.length + ' args', function() {
var res = add.apply(null, test.args);
assert.equal(res, test.expected);
});
});
});
Jacob 提供的答案是正确的,只是您需要在迭代之前先定义变量。
关于unit-testing - 使用 Mocha 进行参数化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17569382/