![](/img/trans.png)
[英]Spring java config to invoke a public non static method of a singleton class with private constructor
[英]How to Invoke a private method on a singleton (Enum style) in java?
有沒有一種方法可以調用枚舉單例的私有靜態方法? 例如,假設我有一些遺留代碼需要測試,其結構如下:
public enum Singleton {
INSTANCE;
private static double methodToTest() {
return 1.0;
}
public static String extremelyComplexMethod() {
methodToTest();
//Imagine lots more complex code here
return "";
}
}
我將如何創建一個methodToTest
測試methodToTest
的類? 我曾嘗試使用Whitebox(包含在PowerMock中)進行反射,但是我沒有運氣。 有辦法嗎?
我知道直接測試私有方法不是首選的方法,但是我想知道是否有可能直接測試私有方法。 我試圖使代碼被識別為Java,但未成功。
我能夠調用該方法嘗試以下代碼
@RunWith(PowerMockRunner.class)
@PrepareForTest(Singleton.class)
public class MySingletonTest {
@Test
public void test() throws Exception{
Whitebox.invokeMethod(Singleton.class, "methodToTest");
}
}
不要忘記在PrepareForTest中添加Singleton類
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.