怎樣選擇Java測試框架 JUnit還是TestNG?

發表于:2009-07-02來源:作者:點擊數: 標簽:junitJUnitJunitJUNIT框架
Martin Fowler曾說過,軟件 開發 領域中此前從沒有過這樣的事情:很少幾行代碼對大量的代碼起了如此重要的作用。JUnit過去直到如今依然是 單元測試 的一個標準,是最流行的 開源 工具。當然現在我們有許多有別于JUnit的其他的開源工具。我自己,除了使用 JUn

Martin Fowler曾說過,軟件開發領域中此前從沒有過這樣的事情:很少幾行代碼對大量的代碼起了如此重要的作用。JUnit過去直到如今依然是單元測試的一個標準,是最流行的開源工具。當然現在我們有許多有別于JUnit的其他的開源工具。我自己,除了使用JUnit外,還用TestNG

  自動測試成為你Java項目中的一部分了嗎?你最愛的測試框架是什么哪?使用的又是哪一種標準?

  本文的4名開發者將和你一起分享他們在自動測試領域中的觀點和經驗。當你的項目面臨測試階段的時候,希望這些觀點能對你有所幫助。如果你也想要分享自己的觀點,請回帖參與討論。我們真摯的希望我們能夠為這個領域中新手提供一些有用建議和標準。

  文章最后列出了文章的作者和提到的測試框架。

  論自動測試——Tom Wheeler

  當我給那些有經驗的開發者上課時,我發現只有40%左右的人寫測試。大約還有40%的人甚至從來沒聽說過JUnit,這其中更有一般人完全沒有單元測試的概念。開發者通常處于在項目經理制定的緊促計劃的壓力中——而那些項目經理同樣處于客戶的壓力之下,客戶希望他們的軟件能夠被快速的開發出。不幸的是,測試是項目中的一個重要部分而很多人卻輕易的將它砍掉。真是目光短淺,那種做法只會讓你的應用成為bug的樂園而且會大大超出你的計劃時間。

  為什么會這樣?因為寫自動測試實際上省下了大量的運行時間。每個開發者都會出錯而通過測試可以幫助找到這些錯誤??赡?STRONG>手工測試在某些方面要比自動測試更快一些,但是手工測試需要用戶界面。手工測試的結果并不一致,因為測試者和開發者一樣都會犯錯。而一個自動測試總會保持結果的一致性。

  也許更重要的是,當一個舊bug被修復或者新特性被添加時會引入更多的bug。你需要在改變系統后重新運行所有的測試。這也是自動測試的價值體現,因為對比手工測試的開銷,自動測試的開銷是微不足道的。如果開發者經常測試,他們可以更容易地發現并修改問題,這可以保證代碼質量并保證團隊開發的進度。

  比較JUnit和TestNG——Meera Subbraro

  Martin Fowler曾說過,軟件開發領域中此前從沒有過這樣的事情:很少幾行代碼對大量的代碼起了如此重要的作用。JUnit過去直到如今依然是單元測試的一個標準。它是最流行的開源工具。當然現在我們有許多有別于JUnit的其他的開源工具。我自己,除了使用JUnit外,我還是用TestNG。下面我們來談談下這兩個框架。

  JUnit和TestNG都使用Annotation,都使得測試簡單有趣。如果你寫兩個測試類,一個使用JUnit一個使用TestNG,除非你看到它們import語句,否則你幾乎看不到他們之間的差別。

  如果你是一個TDD的信徒,通過運行測試來完成你的持續集成過程。TestNG可能更加適合。重新運行失敗的測試這樣的機制對于每天都進行編譯來說非常有幫助。而這個特性只有TestNG才有。

  TestNG的另一個亮點是支持參數化。在JUnit中如果你要測試不同的參數,你需要寫不同的測試用例來覆蓋不同參數。而在TestNG,通過使用xml配置文件做到。開發者可能會抱怨XML文件”這下好了,除了要維護那些測試用例,我還要維護那么一堆xml文件”。(譯者按:JUnit4也已經支持參數化測試了)

  JUnit生成的HTML格式的報告非常好。我使用TestNG和Java 6,生成的報告遠沒有JUnit那么漂亮。

  

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97