OPの説明によると、モックされる主なインターフェースはHandler
インターフェースです:
public interface Handler {
void handle(String o);
}
3 つのモック オブジェクトはすべてこのインターフェイスを実装し、TopHandler クラスはテスト対象のクラスです。
public static class TopHandler implements Handler {
private Handler a;
private Handler b;
public TopHandler(Handler a, Handler b) {
this.a = a; this.b = b;
}
public void handle(String o) {
a.handle(o);
b.handle(o);
}
}
TopHandler
テスト ケースでは、実装が実際handle()
に a と b のメソッドを呼び出すことを確認する必要があります。
@Test
public void testTopHandler() throws Exception {
Handler mockA = EasyMock.createMock(Handler.class);
mockA.handle("Test");
EasyMock.expectLastCall().once();
Handler mockB = EasyMock.createMock(Handler.class);
mockB.handle("Test");
EasyMock.expectLastCall().once();
TopHandler handler = new TopHandler(mockA, mockB);
EasyMock.replay(mockA, mockB);
handler.handle("Test");
EasyMock.verify(mockA, mockB);
}