這兩天使用junit測試,測試**中為了模擬實際場景開啟多執行緒,有的情況下,測試的功能本身就是多執行緒活動。測試半天沒有達到預想的效果,仔細研究發現:junit主線程執行完畢就結束了,不管後台執行緒。
場景一:
如果測試**中有多執行緒,可使用countdownlatc解決。
private
int i = 3;
/* * 執行緒計數器
* 將執行緒數量初始化
* 每執行完成一條執行緒,呼叫countdown()使計數器減1
* 主線程呼叫方法await()使其等待,當計數器為0時才被執行
*/private countdownlatch latch = new countdownlatch(i);
@test
public
void test()
try catch (interruptedexception e)
}class
runner
implements
runnable
場景二:測試的任務中有多執行緒活動
通過具體判斷執行緒狀態來實現
場景三:遇到過測試任務的多執行緒活動是執行緒池和阻塞佇列的形式。
無法通過判斷執行緒(任務)是否執行結束,只能通過簡單粗暴的方式:thread.sleep(自己看著辦)
以上愚見,請各位指正。 JUnit測試多執行緒
單元測試是不支援多執行緒的,主線程結束之後,不管子執行緒有沒有結束,都會強制退出。但是我們可以通過控制主線程結束的時間來做多執行緒測試.在junit的 test方法中啟用多執行緒,新啟動的執行緒會隨著 test主線程的死亡而死亡!導致沒有任何輸出 解決方法 在 test方法中每建立乙個執行緒,就jo...
Junit 多執行緒測試
junit不能用來做多執行緒測試,因為junit不支援多執行緒。junit的testrunner的main方法原始碼 public static void main string args system.exit success exit catch exception e 從原始碼可以看出來,ju...
Junit單元測試多執行緒的問題
今天下午很快完成了乙個介面的監控功能,然後屁顛屁顛地用junit開始單元測試。然後我就開始陷入崩潰的邊緣.監控結束後需要將監控結果以郵件的形式傳送給運營的小夥伴維護,前面測試還是很順利,到了開多執行緒發郵件時就不行了,程式也不報錯,也接收不到郵件。然後改 再測試,再冥思一會兒,再改再測試,還是無果,...