如何在Node.js中创建数据驱动测试

如何在Node.js中创建数据驱动测试,node.js,qunit,vows,nodeunit,expresso,Node.js,Qunit,Vows,Nodeunit,Expresso,在Node.js单元测试中,创建数据驱动的单元测试的方法是什么 例如,我有一个通用的函数/方法,我想在具有不同数据集的多个单元测试中重用它。我试着研究诺德尼、誓言、威士忌、奎尼、速递;但是我没能想出一个实现这个功能的方法 我不是在多个测试中按字面意思调用函数,而是在循环中使用通用的方法,以unittest 原因是,我至少有1000行参数化数据,我想为其编写unittest。显然,我不能继续写1000个单元测试 任何人都可以告诉我实现上述功能的方法。有一个qunit插件,它允许运行参数化的quin

Node.js
单元测试中,创建数据驱动的
单元测试的方法是什么

例如,我有一个通用的
函数/方法
,我想在具有不同数据集的多个单元测试中重用它。我试着研究诺德尼、誓言、威士忌、奎尼、速递
;但是我没能想出一个实现这个功能的方法

我不是在多个测试中按字面意思调用函数,而是在循环中使用通用的
方法
,以
unittest

原因是,我至少有1000行参数化数据,我想为其编写
unittest
。显然,我不能继续写1000个单元测试


任何人都可以告诉我实现上述功能的方法。

有一个qunit插件,它允许运行参数化的quint测试


因此,您可以将测试数据和测试方法分离,并对不同的数据集运行相同的测试方法。

这是一篇相当古老的文章,但我自己刚刚遇到了这个问题,如果不使用其他注释(QUnit parameterize)引用的插件,就无法为QUnit找到一个干净的解决方案。老实说,我不知道如何将插件与我公司的项目集成,大约一个小时后就放弃了

我就是这样解决的:

只需使用您的输入(以及预期的输出,如果需要)定义一个数组,迭代您的数组,并在回调中定义QUnit测试!超级简单,真的,但效果相当好

const testCases = [
    { input: "01/01/2015", expected: "2015-01-01" },
    { input: "09/25/2015", expected: "2015-09-01" },
    { input: "12/31/2015", expected: "2015-12-01" }
];

testCases.forEach(testCase => {
    QUnit.test("gets first of month",
    () => {
        const actual = new classUnderTest().getFirstOfMonth(testCase.input);
        strictEqual(actual, testCase.expected);
    });
});
我不确定如果QUnit是这样嵌套的,它是否会发现测试,但它做得很好

享受吧

请定义“参数化数据行”?您指的是对象文本数组还是JSON字符串?