2011-07-18 19 views
1

我在Java環境中使用eclipse。我必須將測試引入已經在進行的項目中。如何開始?單元測試的類,還有什麼?什麼是最好的工具(考慮我使用eclipse)? TestNG,JUnit,JTiger?如何在正在進行的Java項目中引入測試?

我該如何讓其他人適應使用測試?

在此先感謝!

回答

2

Eclipse對JUnit有很大的支持。這看起來是一個很好的起點。我會添加一個新的源代碼目錄測試,並創建一個鏡像您的src文件夾的包結構。然後你可以逐個添加你的單元測試。祝你好運!

+0

我正在考慮使用JUnit,因爲它帶有Eclipse,但不想因爲這是一個糟糕的決定而浪費時間。謝謝大家! –

1

除非您的團隊已經習慣於編寫測試,否則測試所有舊的組件並不是真的可行(有時甚至不是那樣),因爲編寫可測試的軟件需要特定的心態。

我認爲,開始編寫測試的最佳時機是何時可以定義一些足夠關鍵的新組件,以確保額外的工作量,但不知何故是新的,因此現有的代碼庫將不會進行過多的測試。

通過這種方式,您可以找到一種測試方法,找出好處並學習心態,而不會爲您的團隊工作不太費力。

關於工具:我很遺憾無法真正比​​較不同的工具,因爲我只有JUnit的經驗。

JUnit很容易入門,因爲相應的工具已經包含在Eclipse中(用於創建模板,運行和評估選項的嚮導......),並且網絡上提供了大量文檔和示例。

1

JUnit和TestNG都很好。 TestNG具有更多的功能,可以用於集成測試,JUnit更側重於單元測試。

你可能想熟悉一些像Mockito這樣的嘲諷圖書館。像Cobertura這樣的代碼覆蓋工具和Jenkins等持續集成工具也很棒。

使用像Spring或Guice這樣的DI框架有助於編寫更易於測試的代碼。無論您是否使用DI框架,您的代碼越鬆散耦合,測試越容易。由於你的項目已經開始,這部分可能太遲了,這會讓你的任務更加困難。

讓同事與測試合作可能非常困難。您可能需要選擇性地將它引入其中,才能發揮最大的作用。爲已經完成的功能編寫測試通常很痛苦並且浪費時間。測試應該很小,依賴性很少,可以理解,並且應該快速運行。編寫測試,運行測試和修復破壞的測試越痛苦,你會得到越多的抵觸情緒。

1

很多很好的問題。

如果您的項目根本沒有測試,並且已經在進行中,您應該逐步引入測試。當您必須爲此功能開發新的功能寫入測試時,您將要更改的類以及可能會被破壞的功能。當你修正錯誤時也是如此。首先寫測試重現錯誤,然後修復它。

我用JUnit和TestNG。兩者幾乎相同。 TestNG具有組,即您可以將測試標記爲屬於組,例如開發,構建,集成等。如果您有很多測試並且需要大量時間來運行它們,那麼這些主要是相關的。

你已經有自動構建?如果不是從這個開始。如果你更喜歡使用maven,它相對簡單。當你的編譯準備就緒時,編寫幾個單元測試(只是爲了讓某些東西失敗......) 然後安裝Hudson/Jenkins並在那裏定義你的項目。人們會看到,一旦你提交了新的代碼,構建幾乎立即運行,你會看到所有失敗的測試。可能試圖向你的老闆展示TDD的實力,並試圖向他解釋他應該強制所有團隊成員編寫測試。

如果您有足夠的能量將Sonar引入您的公司。人們會看到他們編寫的代碼有多糟糕,測試覆蓋率有多差。他們將看到測試覆蓋率的增長速度有多快,並可能會投入更多的單元測試。

很快,祝你好運。你是對的。

+0

就像評論一樣,我的工作團隊將Jenkins作爲CI工具。我認爲從長遠來看,這對每個人都有好處。謝謝! –

相關問題