簡體   English   中英

將模型屬性添加到Spring MockMvc調用

[英]Adding model attribute to spring MockMvc call

我正在為一個簡單的控制器編寫測試。

控制器檢查是否存在模型屬性“ ADDED_OBJECT”,並在缺少模型屬性時返回成功頁面和錯誤頁面。 測試錯誤路徑是沒有問題的,但是我不知道如何觸發成功路徑,通常在成功的POST(發布/重定向/獲取)模式之后執行該成功路徑。 是否可以將modelattribute添加到mockMvc調用中?

控制器:

@GetMapping("/added")
public String addedContract(Model model) {
    if (!model.containsAttribute(ADDED_OBJECT)) {
        return ERROR_400;
    }
    return "added";
}

測試:

@Test
public void added() throws Exception {
    mockMvc.perform(get("/added"))
            .andExpect(status().isOk())
            .andExpect(content().string(not(containsString("400"))));
}

謝謝

最簡單的方法是像這樣設置flashAttribute

 mockMvc.perform(get("/added").flashAttr("ADDED_OBJECT", "SomeObject"))

這樣,您可以控制將哪些內容傳遞給控制器​​中的模型對象,並相應地針對各種用例設計測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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