有没有办法调用枚举单例的私有静态方法?例如,假设我有一些需要测试的遗留代码,它具有以下结构:
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,但我没有成功。
答案 0 :(得分:0)
我能够调用该方法尝试以下代码
@RunWith(PowerMockRunner.class)
@PrepareForTest(Singleton.class)
public class MySingletonTest {
@Test
public void test() throws Exception{
Whitebox.invokeMethod(Singleton.class, "methodToTest");
}
}
不要忘记在PrepareForTest中添加Singleton类