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);
  });
});