如果審視一下HomeController。可能注意不到這些注解丛忆,看到的僅僅是一個簡單的POJO 祠汇。我們都知道測試POJO是很容易的。<br />
因此熄诡,我們可以編寫一個簡單的類來測試HomeController可很,如下所示:<br />
程序清單5.5 HomeControllerTest:測試HomeController
根據(jù)您的描述,程序清單5.5中的測試是簡單的凰浮,它只測試了home()方法的行為我抠。測試直接調(diào)用home()方法,并斷言返回的字符串包含"home"值袜茧。
第一點測試沒有從Spring MVC控制器的角度測試菜拓,沒有斷言針對GET請求會調(diào)用home方法。
第二點沒有判斷 home是視圖名稱笛厦。
1.使用控制器的方式測試Spring MVC中的控制器纳鼎,不僅僅作為POJO測試。
2.Spring提供一種模擬MVC執(zhí)行HTTP請求的機制裳凸。
3.這樣做不需要啟動Web服務(wù)器和Web瀏覽器贱鄙。
為了演示如何測試Spring MVC控制器,我們重寫了HomeControllerTest姨谷,并使用了Spring MVC中的新測試特性逗宁。
程序清單5.6展示了新的HomeControllerTest。<br />
程序清單5.6 改進HomeControllerTest
新版本的測試相比之前的版本只多了幾行代碼梦湘,但它更完整地測試了HomeController瞎颗。這次測試不是直接調(diào)用home()方法并測試返回值件甥,而是發(fā)起了對"/"的GET請求,并斷言結(jié)果視圖的名稱為"home"言缤。
首先嚼蚀,它使用HomeControllerMockMvcBuilders.standaloneSetup()創(chuàng)建一個MockMvc實例,并調(diào)用build()方法進行構(gòu)建管挟。然后轿曙,使用MockMvc實例執(zhí)行針對"/"的GET請求,并設(shè)置期望得到的視圖名稱僻孝。
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布导帝!