тестирование класса, который возвращает сервис с помощью powermock? - PullRequest
2 голосов
/ 13 июля 2010

Я хочу протестировать некоторые базовые сервисы с помощью 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 голосов
/ 27 августа 2010

То, что вы, вероятно, хотите, это внедрить фиктивную версию сервиса. Это можно сделать так:

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

Подробнее об обходе инкапсуляции можно прочитать здесь: http://code.google.com/p/powermock/wiki/BypassEncapsulation

...