2013-05-21 72 views
9

我有一個方法,它添加了關機掛鉤。我需要測試(通過JUnit的),在掛鉤執行的代碼被稱爲:JUnit4:測試關機掛鉤被稱爲

public void myMethod(){ 
    Runtime.getRuntime().addShutdownHook(new Thread() { 

     @Override 
     public void run() { 
      ... code to test ... 
     } 
    }); 
} 

我如何可以模擬我的單元測試關機?

回答

6

我不認爲你能夠測試。相反,只需測試您的代碼在調用時的行爲是否正確(通過單獨測試它)。然後,相信Java會在適當的時候調用您的代碼。

I.e.將您的代碼提取到單獨的類中,該類擴展了Thread並在單元測試中通過執行run()來測試行爲。

+0

如果我沒有更好的解決方案,我會按照你解釋的方式來測試我的代碼,並且會編寫另一個測試來模擬添加鉤子的方法,以確保它在任何時候都必須被調用。謝謝 –