QUnit.test()

添加的版本:1.0.0

說明

QUnit.test( name, callback )

使用 QUnit.test() 定義測試。

參數 說明
name(字符串) 被測單元的名稱
callback(函數) 執行測試的函數

回調參數

參數 說明
assert(對象) Assert 對象

回調的 assert 參數包含 QUnit 的所有 assertion methods 。使用它來進行測試斷言。

如果您返回 “then-able” Promise 作為回調函數的結果,QUnit.test() 可以代表您自動處理 Promise 的異步解析。

也可以看看:

變更日誌

QUnit 1.16 添加了對異步函數的支持,並返回了一個 Promise。

例子

示例:標準測試

一個實際的例子,使用 assert 參數。

function square (x) {
  return x * x;
}

QUnit.test('square()', assert => {
  assert.equal(square(2), 4, 'square(2)');
  assert.equal(square(3), 9, 'square(3)');
});

示例:異步測試

按照上麵的示例,QUnit.test 還支持開箱即用的 JS async functions 語法。

QUnit.test('Test with async-await', async assert => {
  const a = await fetchSquare(2);
  const b = await fetchSquare(3);

  assert.equal(a, 4);
  assert.equal(b, 9);
  assert.equal(await fetchSquare(5), 25);
});

示例:使用 Promise 進行測試

在 ES5 和更早的環境中,您還可以從標準測試函數中返回 Promise。這也支持其他 then-able、jQuery.Deferred 和 Bluebird Promise 等值。

此示例返回等待 1 秒後解決的 Promise。

function fetchSquare (x) {
  return new Promise(function (resolve) {
    setTimeout(function () {
      resolve(x * x);
    }, 1000);
  });
}

QUnit.test('Test with Promise', function (assert) {
  return fetchSquare(3).then(function (result) {
    assert.equal(result, 9);
  });
});