2011-07-23 34 views
1

我打算在Java中使用模板引擎(可能是FreeMarker)。現在我想知道如何爲它編寫單元測試。如何爲使用FreeMarker模板的代碼編寫單元測試?

我可以準備一個預期的輸出作爲文本文件,但我將不得不手動改變它,每當我改變模板。我想使用模板解析輸出以獲取模型數據,並使用原始模型。我可以這樣做嗎?

回答

2

取決於您的模板將輸出的內容。當然,如果它產生了一個格式良好的XML或JSON格式,你可以輕鬆解析它,所以我只能假設它可能是HTML。您可能可以使用JTidy將其解析爲可從Java使用的DOM模型。

http://jtidy.sourceforge.net/

另一種選擇可能是用好老時尚的grep程序,然後建立一個像assertContains,assertDoesNotContain等原語我有一個JSON庫我寫單元測試,我把那條路線,只是做舊時尚grep,它的運作良好,因爲它捕捉錯誤。我擔心直接解析JSON代碼,因爲我會使用我在測試中編寫的代碼來測試該代碼。你的情況可能不同,所以解析爲DOM模型可能更有意義。

要考慮的重大事情就是測試視圖。因此,當事情發生變化時,您可能會很難及時更新您的測試。在大多數程序中,視圖發生了很大變化,因爲您的客戶,PM,控制您所做事情的人,經常會改變主意。

2

您可能還想查看關於該主題的博客文章(專門針對FreeMarker進行了測試,但適合作爲通用測試機制)。

我把它放在一起在必發的單元測試,它似乎到目前爲止工作得很好。

http://stuartgunter.org/unit-testing-views-spring-mvc/

相關問題