也许这个问题不是那么清楚,但是举个例子,我想我会清楚的。在我的项目中,我有两种测试:集成测试和场景测试。他们都需要一个数据源(带有一个定制的属性占位符)。
在集成测试用例的上下文中,只定义数据源和占位符,如下所示:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<bean id="propertyResolver" class="com.cegeka.bibliothouris.test.MultiThreadedPropertyResolver">
<property name="location"><value>classpath:testContext.properties</value></property>
</bean>
在我的场景测试用例上下文中,我也需要这些对象(连同其他一些东西),但我只想在我的场景上下文中创建一个集成上下文,所以是某种继承。
我已经classPathApplicationContext
在我的场景测试用例中尝试过它(曾经使用延迟初始化为 true),如下所示:
<bean class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<list>
<value>classpath:overridingTestContext.xml</value>
</list>
</constructor-arg>
</bean>
但他并没有dataSource
在场景上下文中创建一个。这是一个很难用谷歌搜索的问题,这就是我在这里问它的原因。我希望有人有解决方案。