gpt4 book ai didi

javascript - 等待 QUnit 测试

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

我有 jQuery 代码,当我点击一个链接时,它首先隐藏然后删除一些 HTML,如下所示:

$(this).parent().parent().hide('slow', function () {
$(this).remove();
});

我想做一个 QUnit 测试,确保有问题的 HTML 已被删除:

$(thelink).click();

// Check that it is gone, by finding the first item in the list
entity = input.form.find('.recurrenceinput_occurrences .occurrence span.action a')[0];
// And make sure it's NOT the deleted one:
ok(entity.attributes.date.value !== "20110413T000000");

问题当然是 ok() 测试在隐藏动画运行到结束之前运行,所以有问题的 HTML 还没有被删除,测试失败。

我尝试了各种延迟/停止测试一秒钟左右的方法,但似乎没有任何效果。最明显的一个是使用 asynTest 并执行

stop();
setTimeout(start, 2000);

但这实际上并没有停止测试。它似乎确实让某事停止了两秒钟,但我不确定是什么。 :-)

有什么想法吗?

最佳答案

您的测试应如下所示。

test('asynchronous test', function() {
stop(); // Pause the test
//Add your wait
setTimeout(function() {
//Make assertion
ok(true);
// After the assertion called, restart the test
start();
}, 1000);
});

UPD: In QUnit 2.x functions start() and stop() are gone .建议改用 assert.async()。更新后的代码如下所示:

    test('asynchronous test', function() {
var done = assert.async();
//Add your wait
setTimeout(function() {
//Make you assertion
ok(true);
// Tell QUnit to wait for the done() call inside the timeout.
done();
}, 1000);
});

关于javascript - 等待 QUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8184096/

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