📜  QUnit-跳过测试(1)

📅  最后修改于: 2023-12-03 14:46:51.346000             🧑  作者: Mango

QUnit-跳过测试

在QUnit测试框架中,有时候我们需要跳过某些测试用例,例如某个测试用例依赖于第三方库,而该库可能由于种种原因无法再我们的测试环境中运行,那么此时我们可以使用QUnit提供的跳过测试功能。

如何跳过测试?

在QUnit框架中,我们可以使用QUnit.skip()函数来跳过指定的测试用例。例如:

QUnit.test("should be skipped", function(assert) {
  assert.ok(false, "we shouldn't be here");
});

QUnit.skip("should also be skipped", function(assert) {
    assert.ok(false, "we should never run this");
});

QUnit.test("should not be skipped", function(assert) {
  assert.ok(true, "we should run this");
});

在上述测试中,前两个测试用例都将被跳过,最后一个测试用例将会被执行。

跳过测试的原理是什么?

QUnit内部的处理机制是,如果一个测试用例被标记为跳过,那么该测试用例的状态将会被标记为"skipped"。当QUnit运行测试用例的过程中,将会跳过"skipped"状态的测试用例,直接进入下一个待执行的测试用例,从而实现对指定测试用例的跳过。

如何判断测试用例是否被跳过?

在QUnit框架中,我们可以使用assert.expect()方法来判断测试用例是否被跳过。例如:

QUnit.test("should be skipped", function(assert) {
  assert.expect(0);
  assert.ok(false, "we shouldn't be here");
});

QUnit.skip("should also be skipped", function(assert) {
  assert.expect(0);
  assert.ok(false, "we should never run this");
});

QUnit.test("should not be skipped", function(assert) {
  assert.expect(1);
  assert.ok(true, "we should run this");
});

上述测试中,assert.expect(0)表示当前测试用例中就没有断言,也就是本次测试完全不用执行,因为它被跳过了。assert.expect(1)表示当前测试用例中需要一个断言,如果没有跳过的话,那么这个测试用例的状态应该是"passed"。

总结

QUnit提供了跳过测试的功能,可以在我们遇到依赖无法满足,或者某些测试用例无法正确运行的情况下,让我们轻松地跳过这些测试用例,避免测试出错,提高测试效率。