2016-09-14 57 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 
相關問題