在Node.js
单元测试中,创建数据驱动unit tests
的方法是什么?
例如,我有一个常见的function / method
,我想在具有不同数据集的多个单元测试中重复使用。我尝试研究nodeunit, vows, whiskey, qunit, expresso
;但是我无法找到实现此功能的方法。
我不是在考虑在多个测试中从字面上调用该功能,而是在循环中使用常见的method
来拾取每次迭代中的数据并执行它,作为unittest
原因是,我至少要编写1000行参数化数据,我想编写unittest
。显然,我不能从物理上写1000 unittests
。
任何人都可以为我指出上述方法。
有Qunit addon允许运行参数化的五数标测试
https://github.com/astepaniuk/qunit-parameterize
因此,您可以将测试数据和测试方法和运行相同的测试方法针对不同的数据集。
这是一个非常古老的帖子,但是我自己遇到了这个问题,无法在不使用其他评论引用的插件的情况下找到Qunit的干净解决方案(Qunit-Parameterize)。老实说,我不知道如何将插件与公司的项目集成并放弃了大约一个小时。
这就是我最终解决的方式:
只需定义一个带有输入的数组(如果需要的话,并且预期的输出),迭代您的数组,然后在回调中定义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是否嵌套了测试,但是确实可以。
享受!