2015-08-17 73 views
1

有沒有方法可以單元測試Spring Security提供的authorize tag的使用? MockMvc integration做得不夠好,因爲我似乎只能檢查轉發的/重定向的URL,而不檢查URL的內容。單元測試「授權」Spring Security JSP taglib

我正在做的工作涉及編寫自定義SpEL表達式,並且檢查它們在真正的sec:authorize用法上工作會很棒!現在我只限於測試,對這些表述基本呼叫的JSP頁面(特別是使用access屬性在intercept-url元素)

回答

1

不幸的範圍之外的工作,JSP頁面不工作,因爲在單元測試他們需要由servlet容器編譯。我會推薦使用沒有容器的東西(即Thymeleaf),因爲您可以在這些情況下輕鬆呈現響應。

如果您使用的技術可以在容器外渲染,那麼您可以利用Spring Framework 4.2+中的HtmlUnit MockMvc integration。如果您使用的是舊版本的Spring Framework並且無法升級,則可以使用Spring Test HtmlUnit

注意 Spring Test HtmlUnit現在只作爲Spring Framework 4.2+的一部分進行維護,而不是作爲獨立的項目進行維護。

如果你真的必須使用JSP,它可能會有點痛苦。但是,有一個pretty decent github project列出了一些單元測試JSP的機制。在選項JspTest似乎最有前途(但仍相當過時)。

如果您覺得雄心勃勃,那麼看看您是否可以使用Jasper(Tomcat的JSP編譯器)提供與MockMvc一起工作的鉤子將會非常有趣。