2012-08-14 50 views
4

在我的測試中,我正在使用連接到數據庫,我打開連接@Before 並關閉它在@After最後在Java Junit 4中

我的問題是如果在測試期間拋出異常會發生什麼?

我該如何關閉連接?

我正在尋找相當於finally的東西,它位於try和catch塊之後。

回答

6

@After會做你想做的。根據其documentation

即使Before或Test方法拋出異常,所有@After方法都保證運行。

(這直覺對我來說很有意義,因爲我想象中的測試方法,裹在try塊,將捕獲任何異常,將其轉換爲一個測試失敗。因此,測試失敗,那麼拆機塊運行。 )

請注意,如果引發了Error,它不會指定該方法將運行。通常,雖然您只使用@After方法來維護測試狀態,但這不會造成問題,因爲在這種情況下無法運行更多測試。如果確實需要使用測試中必須清理的任何資源(例如本機掛鉤),那麼最好在測試方法本身的try-finally塊中執行此操作。