異步代碼,我想測試一些代碼,依賴於網絡傳輸。代碼發出請求並提供回調 - 請求完成時,回調被觸發。我想嘲笑網絡傳輸,並使用Thread.sleep
模擬一些延遲......但當然這會使整個測試暫停。測試使用JUnit
到目前爲止,我已經作出新的線程,使用整個測試CountDownLatch
ES從回調發射結束之前停止測試。我的模擬網絡對象創建一個新線程,睡在該線程上,然後觸發回調。這實際上工作得很好,但問題在於,回調中的任何斷言錯誤都不會報告給原始junit線程 - 相反,我在控制檯上收到異常文本,在這些文本中,理解和使用它們更加困難。
我希望有兩種:
- 一種方法來管,從產生的線程
assertEquals
輸出到主JUnit的輸出收藏家,或 - 一個完全不同的,更好的方式來測試的JUnit線程代碼,或
- 一些方法來模擬異步代碼在一個單獨的線程
感謝您的想法!
爲什麼查不出來QUnit:http://docs.jquery.com/QUnit –