Junit測試中多執行緒問題

2021-08-01 08:41:20 字數 733 閱讀 6377

這兩天使用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開始單元測試。然後我就開始陷入崩潰的邊緣.監控結束後需要將監控結果以郵件的形式傳送給運營的小夥伴維護,前面測試還是很順利,到了開多執行緒發郵件時就不行了,程式也不報錯,也接收不到郵件。然後改 再測試,再冥思一會兒,再改再測試,還是無果,...