2014-11-21 184 views
0

我有一個關於JUnit中參數化測試的問題。我正在運行一個包含所有測試類的測試套件,我的課程需要有一個測試套件來運行我的所有測試類,所以我無法修改它。問題是我有一大堆的Entry對象(讓我們把它當作一個唯一ID從1開始的對象,每當它創建一個新的實例時就增加),並且它們正在被JUnit預處理。在編譯和運行我的程序時,我有在ParamTest類中聲明的9個條目。在另一個班級(EntryTest)中,我有一個已創建的條目,它的ID應爲1。但是,它的ID爲10,表示參數化測試類的9個條目已經事先創建。JUnit參數化測試處理

我的問題是,有無論如何強迫ParamTest類沒有做任何預處理之前EntryTest類運行或這是不可能的。在套件中,我確定在ParamTest之前聲明EntryTest。如果無論如何我都可以解決這個問題,而不是單獨創建單獨的套件或單獨運行測試?我在想一個公共的靜態int來跟蹤預處理量的ID,但這聽起來像是一個醜陋的解決方案。

回答

0

我認爲你的測試會變得越來越難看,除非你有辦法將靜態類重置爲已知狀態。

我建議你公開一個包私鑰方法,它允許你重置某個特定的ID值(例如0)。

即使在相同的測試類別中,測試也應該完全獨立。