有没有一种很好的方法允许在多个位置设置assert.expect(n)?

时间:2014-12-09 15:18:31

标签: javascript qunit

我正在为非平凡的API编写测试,并且需要针对不同的测试重复许多事情。我在单独的函数中拆分了常见的东西,但不幸的是,这使得以任何有意义的方式使用assert.expect(n)会非常痛苦。有什么方法可以改善这个吗?我一直在寻找能让我expect仅用于当前函数的东西:

function x(assert) {
    assert.expect(2);
    y(assert);
    // 2 asserts.
    assert.testExpects();
}

function y(assert) {
    assert.expect(1);
    // Assert.
    assert.testExpects();
}

或者某种方式来增加预期的断言数量。像这样:

function x(assert) {
    assert.expect(assert.expected + 2);
    y(assert);
    // 2 asserts.
}

function y(assert) {
    assert.expect(assert.expected + 1);
    // Assert.
}

1 个答案:

答案 0 :(得分:2)

实际上,即使它没有写在documentation中,看来assert.expect()(没有参数)会返回当前预期断言的数量,这可以像第二个一样使用OP中的示例。我只是通过浏览源代码才发现,所以我不确定这是否会在将来继续有效,但除非有人有更好的解决方案,否则它现在可以正常工作。