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