我试图模拟一个从redis获取数据的服务.我已经在spring上下文中将bean注入一个新的上下文文件test-context.xml但是我有其他的上下文文件A.xml,B.xml引用了方法中的方法test-context.xml中的beanS.我在enter link description here中读到了这个问题
它创建了一个BaseTest类,但是当我继承该类时,我首先加载子类中的上下文文件而不是首先加载基类的上下文文件,因为子类上下文中的bean依赖于基类上下文.
@ContextConfiguration(locations = { "/META-INF/spring/testContext.xml" })
public abstract class myBaseTest {
@Before
public void init() {
// custom initialization code for resources loaded by testContext.xml
}
@After
public void cleanup() {
// custom cleanup code for resources loaded by testContext.xml
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/META-INF/spring/A.xml",
"/META- INF/spring/B.xml" })
public class childTest extends myBaseTest { ... }
解决方法:
您可以简单地将父上下文添加到子配置中.
@ContextConfiguration(locations = { "/META-INF/spring/testContext.xml",
"/META-INF/spring/A.xml",
"/META-INF/spring/B.xml"})
如果不覆盖@Before和@After的方法将正常工作.