@WebAppConfiguration не введен

Я пытаюсь создать тесты Spring-MVC с помощью Spring 3.2.1. После некоторых уроков я подумал, что это будет просто.

Вот мой тест:

@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration( loader = AnnotationConfigContextLoader.class, classes = { JpaTestConfig.class } )

@WebAppConfiguration
public class HomeControllerTest {

@Resource
private WebApplicationContext webApplicationContext;

private MockMvc mockMvc;

@Test
public void testRoot() throws Exception {
    mockMvc.perform(get("/").accept(MediaType.TEXT_PLAIN)).andDo(print())
            // print the request/response in the console
            .andExpect(status().isOk()).andExpect(content().contentType(MediaType.TEXT_PLAIN))
            .andExpect(content().string("Hello World!"));
}

@Before
public void setUp() {
    mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
}

Вот мой соответствующий pom.xml:


    org.hamcrest
    hamcrest-all
    1.3
    test


    junit
    junit
    4.10
    test

    
        hamcrest-core
        org.hamcrest
    



    org.springframework
    spring-test
    3.2.1.RELEASE

У меня есть следующий класс конфигурации теста:

@Configuration
@EnableTransactionManagement
@ComponentScan( basePackages = { "com.myproject.service", "com.myproject.utility",
        "com.myproject.controller" } )
@ImportResource( "classpath:applicationContext.xml" )
public class JpaTestConfig {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() {
...
}

// various other services/datasource but not controllers
}

Насколько я понимаю, добавление@WebAppConfiguration заставит Spring впрыснуть его. Но когда я запускаю этот тест из Eclipse, я получаю:

Вызвано: org.springframework.beans.factory.NoSuchBeanDefinitionException: не найден квалифицирующий компонент типа [org.springframework.web.context.WebApplicationContext] для зависимости: ожидается, что по крайней мере 1 компонент, который квалифицируется как кандидат для автоматической передачи этой зависимости. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (обязательно = true)} в org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException (DefaultLisory.Fe. factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:837) в org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:749) в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement. инъекционные (AutowiredAnnotationBeanPostProcessor.java:486)

Обновить - Мне пришлось изменить мой класс конфигурации тестирования Java

@Configuration
@EnableWebMvc
@ComponentScan( basePackages = { "...." } )
@EnableTransactionManagement
@ImportResource( "classpath:applicationContext.xml" )
public class JpaTestConfig extends WebMvcConfigurationSupport {

Однако теперь проблема заключается в том, что я могу вызвать свою службу REST, но она вызывает некоторые другие службы, включая вызовы базы данных. Что является предпочтительным способом просто проверить вызов и поддельный ответ. Я хотел бы проверить действительные и недействительные условия.

Ответы на вопрос(3)

Ваш ответ на вопрос