2013-02-09 52 views
2

我的測試如何寫一個測試通過Spring MVC的測試

ObjectMapper objectMapper = new ObjectMapper(); 
    objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); 
    byte[] bytes = objectMapper.writeValueAsBytes(webFile); 
    this.mockMvc.perform(post("/loadFile.json").accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON).content(bytes)).andExpect(status().isOk()); 

我的控制器發送JSON的@RequestBody方法

@RequiredPermission(RequiredPermission.OperationType.viewProject) 
@RequestMapping(value = "/loadFile", method = RequestMethod.POST) 
public 
@ResponseBody 
ModelAndView load(@RequestBody WebFile document) 
     { ... } 

但總是得到400錯誤

回答

1

在您的測試您正在使用網址/loadFile.json,但在您的控制器中您有/loadFile。如果沒有將測試類中的網址更改爲/loadFile,您是否使用了一些urlrewriter?測試類中的所有其他代碼似乎都沒問題。

+0

我正在使用傑克遜將對象轉換爲json。其他測試運行良好,所以不是網址問題 – atu0830 2013-02-09 05:42:46

+0

你可以發佈你的WebFile.java和json字符串(字節)。 – Kris 2013-02-09 08:50:58