assert.expect()

添加的版本:1.0.0

說明

expect( amount )

指定測試中預期的斷言數量。

名字 說明
amount 此測試中預期的斷言數。

這最常用作 assert.expect(0) ,表示測試可以通過任何斷言。這意味著測試僅用於驗證代碼是否完成,沒有任何未捕獲的錯誤。這本質上是 assert.throws() 的倒數。

它還可用於明確要求在給定測試中記錄一定數量的斷言。如果之後斷言的數量與預期的數量不匹配,則測試將失敗。

建議使用 assert.step() assert.async() 來測試異步代碼。

例子

示例:無斷言

沒有任何斷言的測試:

QUnit.test('example', function (assert) {
  assert.expect(0);

  var android = new Robot();
  android.up(2);
  android.down(2);
  android.left();
  android.right();
  android.left();
  android.right();
  android.attack();
  android.jump();
});

示例:自定義斷言

如果您使用在未滿足預期時拋出的通用斷言庫,如果測試中不需要其他斷言,則可以使用assert.expect(0)

QUnit.test('example', function (assert) {
  assert.expect(0);

  var android = new Robot(database);
  android.run();

  database.assertNoOpenConnections();
});

示例:顯式計數

需要明確的斷言計數。

QUnit.test('example', function (assert) {
  assert.expect(2);

  function calc (x, operation) {
    return operation(x);
  }

  let result = calc(2, function (x) {
    assert.true(true, 'calc() calls operation function');
    return x * x;
  });

  assert.strictEqual(result, 4, '2 squared equals 4');
});