Junit 如何使用mockito调用枚举类型中的私有方法

Junit 如何使用mockito调用枚举类型中的私有方法,junit,enums,mockito,Junit,Enums,Mockito,在私有方法上编写Junit测试 如何调用枚举类型的私有方法,以及我需要模拟通过私有方法的参数传递的clientInstance??? public enum SPHttpClient { ; private static fun(clientInstance) { HttpPost postRequest; /* some processing*/ clientInstance.execute(postRequest); // I need to moc

在私有方法上编写Junit测试

如何调用枚举类型的私有方法,以及我需要模拟通过私有方法的参数传递的clientInstance???

public enum SPHttpClient {
    ;

private static fun(clientInstance) {
    HttpPost postRequest;
    /* some processing*/
    clientInstance.execute(postRequest);
    // I need to mock this execute statement
 }

}

我认为
getclass
不适用于枚举???

调用的签名是
invoke(objectobj,Object…args)
obj
必须是此对象的首选项。由于您的方法是静态的,因此没有此对象,您可以传递null,但不能忽略它,即以下工作:

SPHttpClient spHttpClient;
final Method method = spHttpClient.getClass().getDeclaredMethod("fun", HttpClient.class);
        method.setAccessible(true);
        Object actual = method.invoke(spHttpClient, mockHttpClient);

clientInstance
来自哪里?
clientInstance
HttpClient
对象的类型,它是通过使用
spHttpClient.getClass()
将参数传递给
fun
函数的,我们可以在枚举类型中获取方法吗?使用
spHttpClient.class
。顺便说一下:这个问题与反射无关。如果这是您的问题,您最好提到发生了NullPointerException。
final Method method = SpHttpClient.class.getDeclaredMethod("fun", HttpClient.class);
method.setAccessible(true);
Object actual = method.invoke(null, mockHttpClient);