2010-11-28 20 views
5

我甚至在瞭解TDD的實際情況之前一直在編寫測試驅動的代碼。在沒有實現的情況下調用函數和類可以幫助我更快更高效地理解和構建應用程序。所以我非常習慣編寫代碼 - >編譯它 - 看到它失敗 - >通過構建它的實現來修復它。特定於JSP的測試驅動開發

這個過程對Web來說有點困難。特別是JSP。當我編譯我的Java類時,沒關係,我可以看到編譯錯誤。然而,在JSP中看到錯誤需要我打開瀏覽器並調用特定的JSP。

有沒有辦法避免這個過程,並顯示JSP編譯錯誤,而不實際加載瀏覽器?

回答

2

我通常不直接測試JSP。在您的JSP中保留儘可能少的邏輯通常是一個好主意,如果您的JSP只包含幾個<c:out>標籤,那麼測試並不是太多。但是,如果你在他們內部有相當多的邏輯,那麼我要做的就是將這個邏輯提取到一個自定義標籤中,你可以很容易地測試驅動器。

3

當然。您可以預編譯JSP。甚至有螞蟻的任務。請參考以下鏈接:http://ant.apache.org/manual/Tasks/jspc.html

但我認爲,這僅僅是第一步。這會讓你看到編譯錯誤。我認爲你需要更多,即單元測試。我相信像雅加達仙人掌(或其他)的工具可以幫助你。

最近BTW我發現下面的resource枚舉的Java測試工具的一個巨大的數字。

+0

+1 JSPC不僅僅是一個Ant任務,它是Tomcat的內置JSP-> servlet的編譯器,它可以爲任何編譯環境的一部分使用shell。 @Luca:即使你不使用Tomcat作爲你的JEE服務器,它也可能是你的過程中的一個方便的工具:http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/jasper /JspC.html – 2010-11-28 10:31:52

+0

「2011/08/05 - 雅加達仙人掌已經退休了。」 – Raedwald 2013-06-10 12:30:39

1

編譯是很容易的部分,我認爲AlexR的答案處理它很好。

測試和試駕JSP是困難的,因爲測試它確實需要部署到Web容器或模擬(嘲諷)這一點,並通過瀏覽器運行,或者模仿的東西瀏覽器。

Cactus可以幫助進行容器內測試。 Selenium也可以。

或者你可以模擬環境。如果您使用的是Spring,那麼它可以提供很好的支持。

但應對測試和難度的最好辦法試駕JSP是完全停止使用JSP,或通過避免小腳本至少儘量減少你的JSP代碼的邏輯。

因爲JSP只是一種變相的servlet時,它總是可以編寫網絡應用,而JSP,並有使用框架,如WicketTapestry或模板引擎,如Velocity使Java的Web應用程序的開發,而不JSP很容易的選擇。