2016-09-14 102 views
1

我在版本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(); 

的API使用Spring Rest Docs

@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"} 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 
相关问题