gpt4 book ai didi

testing - Qunit beforeEach,afterEach - 异步

转载 作者:行者123 更新时间:2023-11-28 19:55:47 24 4
gpt4 key购买 nike

由于 start()、stop() 将在 Qunit 2.0 中删除,通过 beforeEach、afterEach 方法进行异步设置和拆卸的替代方案是什么?例如,如果我想让 beforeEach 等待 promise 完成?

最佳答案

QUnit 基本上希望人们停止使用 global methods (不仅是 start()stop() ,还有 test()expect() 等)。因此,从 1.16.0 版开始,您应该始终使用全局命名空间 (QUnit) 或 assert传递给 test() 的 API 参数功能。这包括新的 async control :

QUnit.test( "testing async action", function( assert ) {  // <-- note the `assert` argument here
var done = assert.async(); // tell QUnit we're doing async actions and
// hold onto the function it returns for later

setTimeout(function() { // do some async stuff
assert.ok( true, "This happened 100 ms later!" );

done(); // using the function returned from `assert.async()` we
// tell QUnit we're don with async actions
}, 100);
});

如果你熟悉旧的start()stop()做事的方式,你应该看到这是非常相似的,但更加分隔和可扩展。

因为 async()方法调用在 assert 上参数进入测试,它不能在 beforeEach() 中使用功能。如果您有之前如何执行此操作的示例,请将其发布,我们可以尝试弄清楚如何将其 git 到新的方式中。

更新

我之前的错误,assert对象被传递到 beforeEachafterEach模块上的回调,因此您应该能够执行与测试相同的逻辑:

QUnit.module('set of tests', {
beforeEach: function(assert) {
var done = assert.async();
doSomethingAsync(function() {
done(); // tell QUnit you're good to go.
});
}
});

(在 QUnit 1.17.1 中测试)

关于testing - Qunit beforeEach,afterEach - 异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27717784/

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