Использование @RunWith (SpringJUnit4ClassRunner.class), можете ли вы получить доступ к объекту ApplicationContext?
У меня есть весенний тест, который использует:
@RunWith(SpringJUnit4ClassRunner.class)
В отличие от старого способа тестирования, расширяющегося от базовых классов Spring test, похоже, нет очевидного способа доступа к ApplicationContext, который был загружен Spring с помощью @ContextConfiguration
как я могу получить доступ к ApplicationContext
объект из моих методов тестирования?
спасибо!
3 ответов
С Интеграционное Тестирование раздел весенней документации
@Autowired ApplicationContext
в качестве альтернативы реализации интерфейса ApplicationContextAware можно ввести контекст приложения для тестового класса с помощью аннотации @Autowired для метода field или setter. Например:
@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")