Spring Конфигурация java unit test
Я пытаюсь настроить java-конфигурацию spring. При использовании xml-конфигурационных файлов мои модульные тесты используют следующие
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(....)
Если я использую java-конфигурацию, как это сделать. или я должен просто использовать
ApplicationContext appConfig = new AnnotationConfigApplicationContext(SimpleConfiguration.class);
Ответы
Ответ 1
Начиная с Spring 3.1, @ContextConfiguration теперь имеет полную поддержку классов @Configuration; XML не требуется.
См. http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#d0e1392
Или, более конкретно, http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#testcontext-ctx-management-javaconfig, в котором показан следующий фрагмент кода:
@RunWith(SpringJUnit4ClassRunner.class)
// ApplicationContext will be loaded from AppConfig and TestConfig
@ContextConfiguration(classes={AppConfig.class, TestConfig.class})
public class MyTest {
// class body...
}
AppConfig
и TestConfig
- это классы @Configuration (ака "классы Java config" в комментариях @user373201)
Ответ 2
@ContextConfiguration используется для загрузки конфигураций Spring во время работы с тестовыми примерами. Если вам это не нужно, вы можете использовать ClassPaспасибоmlApplicationContext для загрузки конфигурации Spring.
Используйте конструктор который принимает расположение конфигурации в виде массива String.
AnnotationConfigApplicationContext используется для автоматического обнаружения аннотированных классов. Я не думаю, что он может использоваться для загрузки файлов конфигурации. Он похож на контекст: компонент-сканирование
SpringJUnit4ClassRunner предоставляет Spring тестовую поддержку Junit с помощью аннотаций, таких как @Test.