2011-04-14 54 views
0

我注意到,當單元測試退出時,所有生成的線程都會自動終止,這與從命令行運行的java程序完全不同。在命令行中,程序不會退出,直到所有非deamon線程退出。如何使JUnit的行爲與從命令行運行的Java相同

如何使用jUnit測試涉及衍生線程的情況?

+0

所以,你有一個測試情況,產生一個線程,需要等待它完成,以檢查其結果?如果是這樣的話,你不能通過使用連接來等待線程完成測試用例嗎?你可以重構代碼,以便可以測試這些功能,而不必將它置於單獨的線程中嗎? – DaveH 2011-04-14 08:14:27

+0

我需要測試的方法產生一個線程。 – user705414 2011-04-14 08:19:09

+0

如果您正在測試的方法返回創建線程的引用,然後加入。如果沒有,請創建自己的線程來調用待測方法並加入。 – DaveH 2011-04-14 08:25:10

回答

2

如果您正在測試的方法返回它創建的線程的引用,然後加入。如果沒有,請創建自己的線程來調用待測方法並加入。

0

我建議你讓你的單元測試shutdown()它的組件,使它返回到測試開始前的狀態。這在運行系統中可能並不需要,但它允許您多次運行多個測試。

你甚至可能想借正在運行的線程的快照開始和之後檢查有沒有新的線程(可能有一些預期的結果這是好的)