3

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

例如,我有一个 common function / method,我想在具有不同数据集的多个单元测试中重用它。我试着调查nodeunit, vows, whiskey, qunit, expresso;但我无法找到实现此功能的方法。

我并没有考虑在多个测试中逐字调用该函数,而是method在循环中使用 common 来获取每次迭代中的数据并执行它,作为unittest

这样做的原因是,我至少有 1000 行参数化数据,我想为此编写unittest. 显然我不能继续写 1000unittests物理。

任何人都可以请您指出实现上述目标的方法。

4

2 回答 2

3

有允许运行参数化 quint 测试的 qunit 插件
https://github.com/AStepaniuk/qunit-parameterize

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

于 2012-11-17T03:51:47.980 回答
2

这是一篇相当老的帖子,但我自己也遇到了这个问题,如果不使用其他评论(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 是这样嵌套的,它会发现测试,但它确实很好。

享受!

于 2016-11-04T20:06:04.523 回答