2

我想使用 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。我该怎么做?

4

1 回答 1

0

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

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

您可以在此处阅读有关绕过封装的更多信息:http ://code.google.com/p/powermock/wiki/BypassEncapsulation

于 2010-08-27T07:56:38.370 回答