JavaSpring:模拟bean的正确方法
我有:豆子
<bean id="abstractBean" class="com.package.MyBean" abstract="true"/>
<bean id="heirBean" parent="abstractBean">
<property name="someProperty" ref="anotherBean">
</bean>
问题:如何模拟heirBean
?或者换句话说,如何模拟abstractBean
===========================================================================================
我是如何尝试这样做的[例外]:
<bean id="abstractBean" class="MockFactoryBean">
<property name="type" value="com.package.MyBean"/>
</bean>
MockFactoryBean。java
public class MockFactoryBean<T> implements FactoryBean<T> {
private Class<T> type;
public void setType(Class<T> type) {
this.type = type;
}
@Override
public T getObject() throws Exception {
return Mockito.mock(type);
}
@Override
public Class<T> getObjectType() {
return type;
}
@Override
public boolean isSingleton() {
return true;
}
}
问题:我无法设置模拟的字段
# 1 楼答案
一般来说,你不会模仿父bean,而是模仿你想模仿的每个bean
我理解你的问题:
虽然该理论通常不鼓励为测试进行重构,但测试的特定需求允许您看到重构代码的方法
我建议:
因此,您可以用用法取代继承,这将使您具有更大的灵活性
# 2 楼答案
有一个框架允许您向spring xml文件添加模拟功能-https://bitbucket.org/kubek2k/springockito/wiki/Home
# 3 楼答案
我会使用春天的轮廓概念;从春季3.2开始。在Spring中有一个“profile”概念,您可以使用它来模拟bean的测试范围