2011-10-19 26 views
3

我只是把一個快速的Spring MVC應用作爲一個演示來替換我的部門中的內部應用。完成我的第一個Spring MVC應用 - 老闆想看我的單元測試 - 我從哪裏開始?

現在我應該演示如何測試驅動開發與Spring MVC有關。

不幸的是,我沒有使用TDD來構建演示,我不確定從哪裏開始使用它。

我使用Maven的構建 - 是否有任何基於Maven的測試框架,很容易在Spring MVC的上手,並具有良好的教程?

我從哪裏開始?

回答

4

由於TDD對代碼和方法的編寫有很大的影響,所以在大多數複雜情況下都不可能僞造它! 我的意思是如果你做TDD,那麼代碼將被寫入一種容易測試的類型。如果你不做TDD的話,代碼也會有希望測試,但以完全不同的方式。 - 所以如果你有TDD的一些經驗,你會看到代碼的不同。

所以,如果沒有太多的代碼,並且這個TDD的東西是一個真的嚴重的要求,然後拋出代碼的方式,並再次做到這一點。


無論如何,如果你再或者不這樣做,你需要將相同的工具:

您將需要一個測試framwork:與Junit 4去,因爲它是最好由Spring支持(見春Referece :chapter 9 Testing)。

在Maven的整合是很容易的:

將下`的src /測試/ Java的測試用例,然後(但這dependens你的風格)下測試在並行封裝結構的類。您所需要的只是​​插件。

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.8.1</version> 
    <scope>test</scope> 
</dependency> 

    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.10</version> 
    </plugin> 

願你想要做一些嘲諷比看看easyMockJmockMockito

如果您需要進行集成測試,那通過它的前端訪問您的應用程序比看看:Selenium2/Webdriver - 因此您需要首先啓動服務器,例如Maven-Cargo將幫助您。但一個警告:要讓您的第一個Web基礎集成測試運行,自動啓動服務器並自動部署應用程序是一項艱鉅的任務,並且可能需要一天多的時間。

+0

雖然它是一個快速測試應用程序,所以它不應該是那麼難以修改它以「感覺像TDD」一樣...... – Guillaume

+1

Guillaume:在這種情況下,在TDD中再次執行它也會很容易;-) AND if有人被要求預先說明事情是如何運作的,他應該這樣做! – Ralph

+0

我不能同意更多,他只是想要替代我想的:)個人而言,我會從頭開始,同時保持「舊」應用程序附近,並在需要時提及它。 – Guillaume

5

This教程詳細介紹瞭如何逐步開發Spring Framework MVC應用程序,其中包括一個步驟writing a test。使用其中的示例作爲模型。

+0

很酷。偉大的聯繫。謝謝。 – zippy

1

只使用飛機舊的JUnit。作爲構建過程的一部分,Maven將自動運行。

基本上,你應該爲你的代碼中的每個方法編寫單元測試。通過代碼和值的可能範圍來測試每個可能的路徑。

如果你想模擬TDD,你可以註釋掉代碼和失敗的測試,在一行或多行代碼中註釋可以使測試通過。

+0

好的。這聽起來不太難。謝謝。 – zippy

1

您將需要一個測試框架(如JUnit)和一個用於模擬Spring控制器的框架。 EasyMock是個不錯的選擇。你可以找到一些教程herehere

+0

謝謝,但它看起來像EasyMock已經超過一年半的時間沒有更新。這不是一個風險選擇嗎? – zippy

+0

也許,EasyMock只是穩定? EasyMock是一個廣泛使用的框架,只要您熟悉JUnit或(www.testng.org/),您一定要深入研究它。順便說一下,TDD試圖在代碼之前編寫測試... –

+0

我測試了所有的Java嘲笑框架,我的最愛是(到目前爲止)JMock 2.看看(http://www.jmock.org/) - 但是警告說,如果你是初學者,從平原到嘲笑都有相當的學習曲線。 – Guillaume

相關問題