gpt4 book ai didi

javascript - 使用 qUnit 时如何在每次测试前运行一个函数?

转载 作者:可可西里 更新时间:2023-11-01 02:53:03 25 4
gpt4 key购买 nike

什么是 qUnit 的 nUnits [SetUp] 属性?

最佳答案

注册一个 QUnit 回调

var mySetupFunc(details){/* setup code */}
QUnit.testStart(mySetupFunc);

回调详情

从 QUnit 版本 1.10.0pre-A 开始,每个注册 callback将接收一个散列作为第一个(也是唯一的)参数。我在上面的示例中将我的命名为“详细信息”。哈希的内容因回调而异。这是每个散列中的信息列表。

begin
(开始所有测试)

{}  /* empty hash */

done
(所有测试结束)

  • 失败:(int) 总测试失败
  • 通过:(int) 通过的测试总数
  • 总计:(整数)运行的测试总数
  • runtime:(整数)测试运行的时间,以毫秒为单位

log
(在 ok() 方法等中调用)

  • 结果:( bool 值)如果成功则为真,如果失败则为假
  • 消息:(字符串)您传递给 ok() 的任何消息

testStart
(在每次测试开始时调用)

  • name:测试的名称(传递给 test() 或 asyncTest() 的第一个参数)
  • module:模块名称(如果没有调用module()方法,则为undefined)

testDone
(在每次测试结束时调用)

  • name:(字符串)测试的名称(传递给 test() 或 asyncTest() 的第一个参数)
  • module:(字符串)模块的名称(如果您从未调用过 module() 则将是未定义的)
  • 失败:(整数)失败的断言数
  • 通过:(整数)成功断言的计数
  • 总计:(整数)测试中所有断言的计数

moduleStart
(在每个模块开始时调用)

  • module:模块名称

moduleDone
(在每次测试结束时调用)

  • 模块:(字符串)模块的名称
  • 失败:(整数)失败断言的计数(模块中所有测试的总数)
  • 通过:(整数)成功断言的计数(模块中所有测试的总数)
  • 总计:(整数)模块中所有断言的计数

例子

// There's probably a more elegant way of doing this, 
// but these two methods will add a row to a table for each test showing how long
// each test took.
var profileStartTime = null;

function startTimer(details) {
profileStartTime = new Date();
}

function stopTimer(details) {
var stopDate = new Date();
var duration = stopDate - profileStartTime;
jQuery('#profiling').append(
"<tr><td>"
+ (details.module ? details.module + ":" : "")
+ details.name
+ "<\/td><td class='duration'>"
+ duration
+ "<\/td><\/tr>");
}

QUnit.testStart(startTimer);
QUnit.testDone(stopTimer);

我上面引用的 html 表格如下所示:

<div style='margin: 10px 0;'>
<table summary='profiling' class='profiling_table'>
<thead>
<tr>
<th>Test Name</th>
<th>Duration</th>
</tr>
</thead>
<tbody id='profiling'>
</tbody>
</table>
</div>

关于javascript - 使用 qUnit 时如何在每次测试前运行一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1683416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com