У меня есть следующий тестовый класс
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/services-test-config.xml"})
public class MySericeTest {
@Autowired
MyService service;
...
}
Действительно ли это возможно к доступу services-test-config.xml
программно в одном из таких методов? Как:
ApplicationContext ctx = somehowGetContext();
Поскольку экземпляры тестов также будут созданы как bean-компонент Spring, вам просто нужно реализовать интерфейс ApplicationContextAware:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/services-test-config.xml"})
public class MySericeTest implements ApplicationContextAware
{
@Autowired
MyService service;
...
@Override
public void setApplicationContext(ApplicationContext context)
throws BeansException
{
// Do something with the context here
}
}
Это тоже отлично работает:
@Autowired
ApplicationContext context;
Если ваш тестовый класс расширяет классы Spring JUnit
{ {1}} (например, AbstractTransactionalJUnit4SpringContextTests
или любой другой класс, расширяющий AbstractSpringContextTests
), вы можете получить доступ к контексту приложения, вызвав метод getContext ()
.
Просмотрите javadocs для пакета org.springframework.test.