簡體   English   中英

使用MockMvc測試異步控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM