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

时间:2010-07-13 03:47:44

标签: java junit powermock

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

1 个答案:

答案 0 :(得分:0)

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

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

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