TestNG的寫作是爲了克服JUnit 3的某些知覺限制。查看Cedric的blog post或TestNG site上的其他文章以瞭解他的想法。
請注意,JUnit 3的某些限制是設計,而TestNG故意允許您執行JUnit設計人員明確禁止的操作。
TestNG對JUnit 3的最大優點是它允許使用註釋來定義測試,而不是強制擴展JUnit基類。 JUnit 4現在也可以用相同的方式使用註釋,縮小差距。
TestNG和JUnit之間最大的區別就是TestNG允許你的測試相互依賴,並允許你通過測試註釋來表達這些依賴關係。相反,JUnit強制所有的測試彼此獨立。
當然還有其他差異 - TestNG默認爲assertEquals(actual, expected, message)
,而JUnit爲assertEquals(message, expected, actual)
- 但這是最大的。
我會說:挑一個,並嘗試一下。寫一些測試。兩者都可以與Selenium一起使用。這兩個工作都很好,兩者都可以與CruiseControl或Hudson一起使用。學習編寫好的單元測試遠比學習一組特定的命令更重要(無論如何,它們都非常相似)。
TestNG擁有更多的權力和更少的限制,IMO,但是這給了你更多錯誤的機會,當然。
'我沒有寫單元測試的經驗'然後挑一個,開始寫測試IMO。 – 2010-09-22 07:31:46
問題是哪一個? – 2010-09-22 07:45:45
[現在爲哪個UnitTest框架學習Java?]的可能的重複(http://stackoverflow.com/questions/3411768/which-unittest-framework-to-learn-for-java-now) – Raedwald 2013-11-06 08:15:59