我有一个 Spring 测试,它使用:
@RunWith(SpringJUnit4ClassRunner.class)
与旧的测试方法不同,从 Spring 测试基类扩展,似乎没有明显的方法可以访问 Spring 加载的 ApplicationContext 使用@ContextConfiguration
如何ApplicationContext
从我的测试方法访问对象?
谢谢!
我有一个 Spring 测试,它使用:
@RunWith(SpringJUnit4ClassRunner.class)
与旧的测试方法不同,从 Spring 测试基类扩展,似乎没有明显的方法可以访问 Spring 加载的 ApplicationContext 使用@ContextConfiguration
如何ApplicationContext
从我的测试方法访问对象?
谢谢!
来自 Spring 文档的集成测试部分
@Autowired 应用程序上下文
作为实现 ApplicationContextAware 接口的替代方法,您可以通过字段或 setter 方法上的 @Autowired 注释为测试类注入应用程序上下文。例如:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyTest {
@Autowired
private ApplicationContext applicationContext;
// class body...
}
我用这个:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyClassTest
{
}
并转到项目构建路径-> Source ->
添加您的位置applicationContext.xml
我使用 maven,所以applicationContext.xml
在src/main/resources
.
如果您使用此方法,您可以使用多个 applicationContext 进行测试,例如:
@ContextConfiguration("classpath:applicationContext_Test.xml")
或者
@ContextConfiguration("classpath:applicationContext_V01.xml")
添加 ApplicationContext 的 @Autowired 属性
@Autowired ApplicationContext applicationContext;