我有测试数据库包的类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:DatabaseBeanLocations.xml" })
public abstract class AbstractDatabaseTest extends AbstractTransactionalJUnit4SpringContextTests {
...
}
测试另一个包,例如后端:
public class BackendTest extends AbstractDatabaseTest {
...
}
因此,此BackendTest
类会从ContextConfiguration
继承AbstractDatabaseTest
。但我想添加另一个xml文件,例如:BackendBeansLocations.xml
执行此操作的一种方法是忽略超类中的locations
:
@ContextConfiguration(inheritLocations = false,
locations = {"classpath:BackendBeansLocations.xml", "classpath:DatabaseBeanLocations.xml" })
public class JobExecutorTest extends AbstractDatabaseTest {
然后重复DatabaseBeanLocations.xml
,这违反了DRY规则。有办法避免这种情况吗?继承位置,但也可以通过添加新位置来扩展它们。
答案 0 :(得分:0)
在BackendBeansLocations.xml
,<import>
DatabaseBeanLocations.xml
。然后,在JobExecutorTest
中,只需导入classpath:BackendBeansLocations.xml
这样你就可以尊重DRY了,继承只是从注释中逐出了XML文件。