我想使用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。我该怎么做?
答案 0 :(得分:0)
您可能想要的是注入该服务的模拟版本。这可以这样做:
service mockService = Mockito.mock(service.class);
Whitebox.setInternalState(serviceutil.class, mockService);
您可以在此处阅读有关绕过封装的更多信息:http://code.google.com/p/powermock/wiki/BypassEncapsulation