gpt4 book ai didi

java - 如何在java中的单例(Enum风格)上调用私有(private)方法?

转载 作者:行者123 更新时间:2023-12-01 13:42:11 25 4
gpt4 key购买 nike

有没有办法调用枚举单例的私有(private)静态方法?例如,假设我有一些需要测试的遗留代码,其结构如下:

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 中)进行反射,但没有成功。有办法做到吗?

我知道直接测试私有(private)方法不是首选的处理方法,但我想知道是否可以直接测试私有(private)方法。我试图让代码被识别为java,但没有成功。

最佳答案

我能够调用该方法,尝​​试以下代码

@RunWith(PowerMockRunner.class)
@PrepareForTest(Singleton.class)
public class MySingletonTest {
@Test
public void test() throws Exception{
Whitebox.invokeMethod(Singleton.class, "methodToTest");
}
}

不要忘记在PrepareForTest中添加Singleton类

关于java - 如何在java中的单例(Enum风格)上调用私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20644596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com