我已经为一个 JavaScript 测试框架编写了一堆测试,并希望将它们拉入 QUnit。
另一个框架将其测试作为对象的属性保存,每个属性都保存一个测试函数。这些调用一个 << assertEqual() >> 函数,但我有代码重写它以将其参数传递给 QUnit 的 << equal() >> 函数。我将测试拉入 QUnit,如下所示:
for ( var tst_name in otherFrameworkTests ) {
test(
tst_name,
function () {otherFrameworkTests[tst_name]()}
);
};
这会在 << tst_name >> 下运行 QUnit 测试——但其中的每一个都在 otherFrameworkTests 的最后一个属性中运行测试。该测试运行正确(失败或按预期通过)。
另外:我可以运行测试
test("test_name", function () {otherFrameworkTests.test_name()});
这适用于给定文件中的所有测试,但它很笨拙并且违反了 DRY。
为什么会这样?如何重新组织代码以运行所有测试?