EasyMock と Guice フレームワークでテストを書いていると、問題が発生します。コードは次のようになります。
class A {
B b;
@Inject
public A(B b) {
this.b = b;
this.b.addListener(this);
}
}
class ATest {
@Inject
A a;
B b;
class InjectionModule extends AbstractModule {
protected void configure() {
b = createMock(B.class);
bind(B.class).toInstance(b);
}
}
public void setUp() {
createInjector(new InjectionModule()).injectMembers(this);
}
public void testSomething() {
replay(b);
a.doSomething();
verify(b);
}
}
ではATest、B 実装をモック オブジェクトに置き換えます。しかし、インジェクターが A のインスタンスを作成すると、のコンストラクターB.addListener()で呼び出されます。A残念ながら、この呼び出しは、予期していなくても EasyMock によって記録されます。
したがって、私の問題は、EasyMockB.addListener()が の各テストケースで呼び出すことを期待していることですATest。これを克服するための提案があれば教えてください。ありがとう。