Я не знаком со Springockito, но он выглядит интересным для некоторых узких случаев, а именно для интеграционного тестирования с макетом.
В любом случае, похоже, что для простого варианта использования вы расширяете AbstractJUnit4SpringContextTests, вы также можете автоматически подключить ClassB в своем тесте, как и в ClassA. Затем вы можете определить ожидаемое поведение для ClassB в своем методе настройки.
Но я думаю, что вам нужно настроить какое-то поведение для bean-компонента ClassB, прежде чем вы получите к нему доступ в своем методе настройки. В этом случае вам может потребоваться другой компонент, чтобы настроить ClassB для ожидаемого поведения. Итак, в вашем testContext.xml будет что-то вроде этого:
<bean id="classA" class="com.jarvis.ClassA" depends-on="classBMockSetter" />
<mockito:mock id="classB" class="com.jarvis.ClassB" />
<bean id="classBMockSetter" class="com.jarvis.test.ClassBMockSetter">
<property name="classB" ref="classB" />
</bean>
ClassBMockSetter будет выглядеть примерно так:
public class ClassBMockSetter {
private ClassB classB;
public void setClassB(ClassB classB) {
this.classB = classB;
given(classB.foo()).willReturn(true);
given(classB.bar()).willReturn(42);
}
}
Я думаю, что это сработает, но не проще ли просто вручную написать свой макет ClassB?
person
jhericks
schedule
21.06.2012