JUnit, 由Kent Beck 和 Erich Gamma開發(fā),幾乎是JAVA開發(fā)重要的第三方工具。正如Martin Fowler 所說,“在軟件開發(fā)領域,從來沒有如此少的代碼起到了如此重要的作用“。由于JUnit,JAVA代碼變得更健壯,更可靠,BUG也比以前更少。由于JUnit (由Smalltalk’s的SUnit得來) 的出現,隨后產生了許多xUnit的測試工具,如nUnit (.NET), pyUnit (Python), CppUnit (C++), dUnit (Delphi) 和其它不同平臺及語言的測試相關的工具。
雖然JUnit也只是一個工具,但其產生的思想和技術卻較其架構更意義重大。單元測試,測試先行的編程方式,測試驅動的開發(fā)方式,并非必須由JUNIT實現,也不一定要用SWing實現GUI界面。JUNIT近的一次更新是在三年前,但它比其它大多數有BUG的框架都要健壯,更重要的是,JAVA一直在改進,F在JAVA支持泛型,枚舉,可變長度參數,以及標記語言(開創(chuàng)了開發(fā)可重用框架的新局面)。
JUnit’s的停滯不前使得那些想要變革的開發(fā)人員換其它測試工具.挑戰(zhàn)者有Bill Venners的Artima SuiteRunner和Cedric Beust的TestNG.這些工具庫雖然有值得推薦的功能,但沒有任何一款的地位能與JUNIT相比,沒有任何一款工具被其它業(yè)界產品如Ant, Maven, Eclipse廣泛支持.因此Beck 和Gamma雙開始利用JAVA5的新特性來開發(fā)新版的JUNIT,目的是利用JAVA5中的標記特性使得單元測試開發(fā)更容易。Beck說:“JUNIT4的主要目的是通過簡化JUNIT的使用鼓勵更多的開發(fā)人員寫更多的測試”。雖然會與以前的版本兼容,但JUNIT4與從JUNIT1.0開始的版本相比會有一個非常大的變化.