![](/img/trans.png)
[英]Testing controllers using Spring, JUNIT, MockMvc and Hamcrest
[英]Testing async controllers using MockMvc
我有一個返回DeferredResult的控制器,它是一個POST。
控制器:
@RequestMapping(value = "/{customerId}/cards", method = RequestMethod.POST)
@ResponseBody
public DeferredResult<CardSummaryQuery> createCard(
@PathVariable String customerId,
@RequestBody CustomerDto payload) {
DeferredResult<CardSummaryQuery> deferred = new DeferredResult<>();
Observable<CardSummaryQuery> observable =
cardService.registerCardObservable(customerId, payload);
observable.subscribe(deferred::setResult, deferred::setErrorResult);
return deferred;
}
我正在嘗試對其進行測試,但收到以下錯誤:“ java.lang.AssertionError:未設置內容類型”
MvcResult result = mockMvc
.perform(post("/customers/55e5d-4df4r-v4fgt/cards").content(payload)
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()).andExpect(request().asyncStarted())
.andExpect(request().asyncResult("Deferred result")).andReturn();
mockMvc.perform(asyncDispatch(result)).andExpect(jsonPath("$.success").value(true));
我該怎么辦?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.