2016-09-14 3 views
1

Я использую Spring Rest Docs в версии 1.1.2.RELEASEтолько при тестировании: Нет отображения найдено для запроса HTTP

Тест

MvcResult result = this.mockMvc.perform(get("/api").accept(MediaType.APPLICATION_JSON)) 
       .andExpect(status().isOk()) 
       .andDo(print()) 
       .andDo(document("index")) 
       .andReturn(); 

АНИ

@RequestMapping(value = "/api") 
    public ResponseEntity<String> apiWelcome() { 
     final HttpHeaders httpHeaders= new HttpHeaders(); 
     httpHeaders.setContentType(MediaType.APPLICATION_JSON); 
     return new ResponseEntity<String>("{\"api\": \"test1\"}", httpHeaders, HttpStatus.OK); 
    } 

Когда Я запускаю приложение, к которому я могу получить доступ «/ api» в браузере, и получить ожидаемое значение {"api": "test1"} re sponse.

Но если я запускаю тест я получаю следующие записи журнала:

c.i.crawler.testnet.measure.RestDocsTest INFO Started RestDocsTest in 2.96 seconds 
o.s.web.servlet.PageNotFound WARN No mapping found for HTTP request with URI [/api] in DispatcherServlet with name '' [main] 

и тест не из-за HTTP/1.1 404 Not Found. Что я делаю неправильно?

Запуск приложения

@SpringBootApplication 
@Configuration 
@EnableConfigurationProperties 
@EnableAutoConfiguration 
@ComponentScan(basePackageClasses = { SomeController.class }) 
public class AppRUN { 

    public static void main(String[] args) { 
     SpringApplication.run(AppRUN.class, args); 
    } 

} 
+0

Трудно сказать, какая проблема из предоставленных вами фрагментов. Можете ли вы поделиться полным примером в отчете GitHub или подобном, который воспроизводит проблему? –

ответ

2

Мой тестовый класс аннотированный следующим образом:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes=RestDocsTest.class) 
@WebAppConfiguration 

Изменение аннотации к следующему устраняет ошибку:

@RunWith(SpringRunner.class) 
@SpringBootTest 
Смежные вопросы