0
有沒有辦法來調用一個枚舉的單例的私有靜態方法?例如,假設我有我需要測試它具有以下結構中的一些遺留代碼:如何在java中調用單例(Enum樣式)的私有方法?
public enum Singleton {
INSTANCE;
private static double methodToTest() {
return 1.0;
}
public static String extremelyComplexMethod() {
methodToTest();
//Imagine lots more complex code here
return "";
}
}
我將如何去創造,在隔離測試methodToTest
一類?我試過使用Whitebox(包含在PowerMock中)的反射,但我沒有運氣。有沒有辦法做到這一點?
我知道直接測試私有方法並不是首選的方法,但我想知道是否可以直接測試私有方法。我試圖讓代碼被識別爲java,但我沒有成功。
可能重複:http://stackoverflow.com/questions/34571/whats-the-the-way-to-test-a-class-with-private-methods-using-junit – bobbel
區別在於它是一個枚舉。我已經嘗試過使用Whitebox以與我爲類的私有靜態方法所做的相同的方式來執行此操作,但我沒有取得成功。 – HardcoreBro
問題是,在類中或枚舉中調用私有靜態方法並沒有真正的區別!所以,如果你在類中找到一種調用私有靜態方法的方法,這也應該適用於枚舉。 – bobbel