由於start(),stop()將在Qunit 2.0中被刪除,通過afterEach,afterEach方法異步設置和拆卸的替代方法是什麼?例如,如果我想讓beforeEach等待承諾完成?Qunit beforeEach,AfterEach - 異步
3
A
回答
7
QUnit基本上希望人們停止使用global methods(不只是start()
和stop()
,也test()
,expect()
等)。因此,從版本1.16.0開始,您應該始終使用傳遞給test()
函數的全局名稱空間(QUnit
)或assert
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()
函數中使用。如果你有一個你以前如何做的例子,請張貼它,我們可以嘗試弄清楚如何把它變成新的方式。
UPDATE
我的錯誤之前,該assert
對象被傳遞到模塊上的beforeEach
和afterEach
回調,所以你應該能夠做到這一點,你會爲測試做同樣的邏輯:
QUnit.module('set of tests', {
beforeEach: function(assert) {
var done = assert.async();
doSomethingAsync(function() {
done(); // tell QUnit you're good to go.
});
}
});
0
(在QUnit 1.17.1測試)看,沒有人已經應答了beforeEach/afterEa第一部分:測試套件應該在頁面加載後立即運行。當無法立即,然後再打配置QUnit:
QUnit.config.autostart = false;
,並繼續設置您的測試套件(初始化測試,他們餵養QUnit,異步等待一些組件來加載,無論是AJAX或任何其他人),您的網站,最後,當它準備好了,只需要運行:
QUnit.start();
QUnit's docsite有它覆蓋。
0
Ember Qunit,曾經存在beforeEach
/setup
,afterEach
/teardown
共存一段時間。
相關問題
- 1. 摩卡beforeEach和afterEach在測試
- 2. 如何重用beforeEach/afterEach在Jasmine JS?
- 3. 全球beforeEach和afterEach在量角器
- 4. QUnit鏈異步測試
- 5. Jasmine 2.0異步beforeEach不等待異步完成
- 6. 在jasmine中自動添加代碼beforeEach和afterEach描述函數
- 7. QUnit&sinon。刺探一個異步調用
- 8. Qunit測試失敗的異步調用
- 9. 與mockajax的Qunit ajax異步調用
- 10. QUnit異步AJAX單元測試
- 11. 不一致的ReSharper的qunit測試跑步
- 12. 摩卡測試beforeEach內循環 - 異步問題
- 13. afterEach before it
- 14. 檢查qunit中的兩個異步調用
- 15. 在PhantomJS中從Ant運行異步QUnit測試
- 16. QUnit異步測試與安裝和拆解
- 17. QUnit異步測試停止功能不起作用
- 18. qunit + mockjax:我應該在異步測試中調用mockjaxClear?
- 19. qunit - 測試異常消息?
- 20. beforeEach無法在CoffeeScript中使用Require.js進行模塊化QUnit/Sinon測試
- 21. 如何測試Jasmine中的方法,如果beforeEach中的代碼是異步的?
- 22. 任何方式來測試異步jquery插件qunit,避免嵌入式「開始()」,並保持異步?
- 23. 異步異步
- 24. QUnit測試同步ajax調用
- 25. 測試異步運行時,如何使用sinon沙箱?
- 26. 如何在ember-qunit測試前後調用鉤子?
- 27. 聲明函數拋出異常與Qunit
- 28. Qunit asyncTest不解決
- 29. 期待超時QUnit
- 30. 異步,異步等待
我有同樣的問題。以下是我在使用Ember應用程序進行集成測試時的用例:https://gist.github.com/tygriffin/0d8cae37c47b243588b9 – niftygrifty
@niftygrifty我會建議在任何測試或模塊運行之前執行一次調用,並使用' QUnit.config.autostart = false;'然後一旦'$ .get()'完成保存返回數據並調用'QUnit.start();'來完成事情。 – jakerella
對於我關聯的孤立用例,這是一個好主意,但理想情況下,我希望有一個拆卸端點以及許多不同的設置端點。我還想至少在每個模塊之間建立並拆卸,如果不是在每次測試之間。據我可以告訴'QUnit。start()'只能被調用一次才能啓動整個測試。是對的嗎? – niftygrifty