1

我已经为一个 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。

为什么会这样?如何重新组织代码以运行所有测试?

4

0 回答 0