1

私がこのサービスを持っているとしましょう:

public class Service
{
   ... 

  public Service(IFactory factory)
  {
      ...
  }

  public void Method() 
  {
      IInsatnce instance1 = factory.CreateInstance(params1);
      IInstance instance2 = factory.CreateInstance(params2);

      instance1.CallMethod1();
      instance2.CallMethod2();
  }      
}

これらの作成されたインスタンスのメソッドが呼び出されたことをテストで確認したいと思います。私が理解していない限り、モックインスタンスを返すファクトリのモックを作成する必要があります。しかし、それでは、で作成されるモックのすべてのインスタンスの参照を保持し、Method()それらを使用してメソッド呼び出しを検証する必要がありますか?それは正しいアプローチですか?

4

1 に答える 1

0

これはかなり一般的なユースケースです。はい、モックされた工場からモックを返送してから、そのモックの検証を行う必要があります。ここで構文を使用します:

IInstance instanceMock1 = mock(IInstance.class);
IInstance instanceMock2 = mock(IInstance.class);
IFactory factoryMock = mock(IFactory.class);

given(factoryMock(params1)).willReturn(instanceMock1);
given(factoryMock(params2)).willReturn(instanceMock2);

//...
verify(instanceMock1).CallMethod1();
verify(instanceMock2).CallMethod2();
于 2012-05-13T13:29:08.190 に答える