最近決定開始使用TestNG來替代junit,作為未來的單元測試基礎組件。
google了一下沒有找到好的詳細的文檔,最后發現官網上的文檔其實挺全的,決定翻譯一下。
TestNG的官方文檔請見: http://testng.org/doc/documentation-main.html
1. 介紹
TestNG是一個設計用來簡化廣泛的測試需求的測試框架,從單元測試(隔離測試一個類)到集成測試(測試由有多個類多個包甚至多個外部框架組成的整個系統,例如運用服務器)。
編寫一個測試的過程有三個典型步驟:
* 編寫測試的 業務邏輯并在代碼中插入TestNG annotation
* 將測試信息添加到testng.xml文件或者build.xml中
* 運行TestNG
在歡迎頁面上可以找到快速入門示例。
下面是這篇文檔使用的概念:
* suite由xml文件描述。它包含一個或多個測試并被定義為<suite>標簽
* test由<test>描述并包含一個或者多個TestNG類
* TestNG類是包含至少一個TestNG annotation的java類,由<class>標簽描述并包含一個或多個測試方法
* 測試方法是源文件中帶有@Testd注釋的java方法
TestNG測試可以被@BeforeXXX 和 @AfterXXX annotations配置,容許在特定點的前后執行一些java邏輯,這些點上面已經列出。
這份手冊的剩余部分將講述以下內容:
* 所有的annotation列表并帶有簡短說明,為TestNG的多種功能性提供參考, 你可能需要參考為每個annotation提供的代碼片段來學習細節。
* testng.xml文件描述,它的語法和如果指定它。
* 多個特性的詳細列表和怎樣結合annotation和testng.xml來使用它們
*******************************************************************************
注:上面的內容很簡短,但是請注意其中的一些細節。
1. TestNG是一個設計用來簡化廣泛的測試需求的測試框架,從單元測試到集成測試
這個是TestNG設計的出發點,不僅僅是單元測試,而且可以用于集成測試。設計目標的不同,對比junit的只適合用于單元測試,TestNG無疑走的更遠。
可以用于集成測試,這個特性是我選擇TestNG的最重要的原因。
2. 測試的過程的三個典型步驟,注意和junit(4.0)相比,多了一個將測試信息添加到testng.xml文件或者build.xml
測試信息尤其是測試數據不再寫死在測試代碼中,好處就是修改測試數據時不需要修改代碼/編譯了,從而有助于將測試人員引入單元測試/集成測試。
3. 基本概念,相比junit的TestCase/TestSuite,TestNG有suite/test/test method三個級別,即將test/test method明確區分開了。
junit中的TestCase將test/test method混合,比較容易讓人概念不清晰,尤其是新手。