2

PowerMock を使用して特定の基盤サービスをテストしたいのですが、複雑です。

あなたの提案を聞きたいです

public interface Service{
  public void someMethod(){
  }
}
public ServiceClient implements Service {
 ...
}
public MyServiceClient {
 public Service getService(){
  return service;
 }
}

MyServiceClient を使用してサービスを呼び出して取得する ServiceUtil を作成しました。

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 に答える