我想考,當請求一個未知的網址,並生成一個404錯誤,我的web應用程序實際上重定向到正確的地方。彈簧單元測試404 一個未知的URL在模擬MVC
我還沒有能夠得到這個工作,我想是因爲Tomcat是處理404錯誤,所以forwardedUrl總是空的測試。我知道這在現實中是有效的,因爲如果我在網址中輸入一些垃圾,我的應用程序會重定向到我的自定義頁面。
我的單元測試看起來像:
@Test
public void testUnknownUrl() throws Exception {
mockMvc.perform(get("/url_doesnt_exist"))
.andExpect(status().isNotFound())
.andExpect(forwardedUrl("/static/error/Sorry.html"));
}
我web.xml配置是:
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/static/error/Sorry.html</location>
</error-page>
用於的/靜態的映射在我的彈簧配置定義如下:
<resources mapping="/static/**" location="/resources/" />
最終,我想嘲笑一個未知網址的請求,然後檢查返回的頁面是/ static/erro R/Sorry.html。
難道我做錯了什麼,或者這是不是處理404等在春天的路上?單元測試中轉發的url的檢查始終爲空。
一個稍微不同的問題,但相關的所有相同的是,在不tomcat的錯誤處理被調用在什麼點及以上的春天控制器建議處理?
你介意分享你的Spring的Dispatcher Servlet配置嗎?只是要確定... –
不,我會編輯我的問題。謝謝 – berimbolo