Java 使用powermock测试返回服务的类?

Java 使用powermock测试返回服务的类?,java,junit,powermock,Java,Junit,Powermock,我想使用PowerMock测试某些底层服务,但这很复杂 我想听听你的建议 public interface Service{ public void someMethod(){ } } public ServiceClient implements Service { ... } public MyServiceClient { public Service getService(){ return service; } } 我编写了一个ServiceUtil,它使用MySe

我想使用PowerMock测试某些底层服务,但这很复杂

我想听听你的建议

public interface Service{
  public void someMethod(){
  }
}
public ServiceClient implements Service {
 ...
}
public MyServiceClient {
 public Service getService(){
  return service;
 }
}
我编写了一个ServiceUtil,它使用MyServiceClient调用并获取服务

public class ServiceUtil {
 private static service s = MyServiceClient.getService();
 public void updateService(){
  // do some thing with service
 }
}

现在我想测试ServiceUtil方法-updateService。我该怎么做?

您可能想要的是注入该服务的模拟版本。可以这样做:

service mockService = Mockito.mock(service.class);
Whitebox.setInternalState(serviceutil.class, mockService);

您可以在此处阅读有关绕过封装的更多信息:

您可能想要的是注入模拟版本的服务。可以这样做:

service mockService = Mockito.mock(service.class);
Whitebox.setInternalState(serviceutil.class, mockService);
您可以在此处阅读有关绕过封装的更多信息: