Когда я пишу тесты с помощью EasyMock и Guice framework, я сталкиваюсь с проблемой.Код выглядит так:
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, даже если я этого не ожидаю.
Поэтому моя проблема в том, что EasyMock ожидает, что я вызову B.addListener()
в каждом тестовом примере в ATest
.Пожалуйста, дайте мне какие-либо предложения, чтобы преодолеть это.Спасибо.