Junit 測試不支援多執行緒踩記及解決方案

2021-08-09 20:22:07 字數 841 閱讀 4166

背景

下面模擬下junit測試不支援多執行緒的場景.

import org.junit.jupiter.api.test;

public

class

junitdemo

}class

runner

implements

runnable

}}

多次執行上述程式,會發現不會列印出10行結果。junit測試,在程勳執行完畢後,就立即把結束,才不管後台啟動了多個執行緒在處理什麼。

解決方案。

方案比較多。這裡瞎歪歪幾種

eg :

private

int i = 10;

/* * 執行緒計數器

* 將執行緒數量初始化

* 每執行完成一條執行緒,呼叫countdown()使計數器減1

* 主線程呼叫方法await()使其等待,當計數器為0時才被執行

*/private countdownlatch latch = new countdownlatch(i);

@test

public

void test()

try catch (interruptedexception e)

}class

runner

implements

runnable

參考文獻

文獻1

junit不支援多執行緒

昨天學習redis的時候嘗試去寫一些測試用例,結果嘗試模擬生產者消費者模式的時候出問題了,沒有資料插入到redis,於是上來發了個問答 今天在用junit寫多執行緒的時候也出現了這個問題,頓時恍然大悟 莫非是junit的問題,上網搜了一下果然如此 原因 junit的原始碼 public static...

junit單元測試不支援多執行緒測試

今天看 高併發 書,寫了乙個多執行緒的類,發現測試方法輸出的結果並不對 同樣的 經過main方法後輸出的結果卻是正常的 經過研究後發現單元測試 test並不支援多執行緒測試 以下為分析過程 private static executorservice ex executors.newfixedthr...

支援測試驅動,不支援同步測試

測試驅動是一種開發的過程,採用單元測試的方式確定開發任務,指示開發進度,我覺得好。但是同步測試是一些專案中採用開發和測試同步進行的方法,這裡的測試,是功能測試了,是那種使用者的測試。不論開發人員是否提交版本,測試人員一通測試,告訴開發人員,你現在有1千多個bug,你要改啊。然後第二天,你提交了乙個版...