1. JDK 5 Annotations (JDK 1.4 可以用JavaDoc代替).
一個典型的Junit的測試類
import junit.framework.TestCase;
public class Jtest extends TestCase {
protected void setUp() throws Exception {
super.setUp();
//some initial code
}
protected void tearDown() throws Exception {
super.tearDown ();
//release resource and rollback
}
public void testFunction {
//test code
}
}
對應的TestNG的測試類,我們寫最簡單的情況。
public class NGtest{
@Configuration(beforeTestClass=true)
public void setUp() {
//some initial code
}
@Configuration(afterTestClass = true)
public void tearDown (){
//release resource and rollback
}
@Test( )
public void testFunction (){
//test code
}
}
這樣寫可以比較明顯的看到兩者的對應關系(注意TestNG的方法的名字是可以隨便取的,取一樣的名字只是為了讓你容易找到對應的關系)
這說明TestNG是從Junit發展而來的,至少借鑒了很多Junit的思想(實際上TestNG的作者本身就是Junit的小組成員之一)。
我們從最表面的現象來看看吧
l TestNG沒有繼承任何類,甚至接口!!
l JDK 5 Annotations
這2者是息息相關的,為什么我們不用繼承任何類,因為信息都在注釋里面,這樣會帶來很多好處(絕不僅僅是命名的方便)。
2. 靈活的test configuration
先看一下Junit的執行順序
Setup( ) test1( ) tearDown( ) Setup( ) test2( ) tearDown( )…………
下面是TestNG的

實際上外面還有一個beforeSuite和afterSuite的方法,是在測試項目開始的時候就運行了,實際上如果我的每個方法都要用到的初始化的代碼,為什么要運行那么多次,如果其中有EJB這種重量級的容器要初始化,效率差可想而知。事實上TestNG可以做到更加的靈活,就是分組。
posted on 2005-12-14 10:33
fanta 閱讀(4320)
評論(0) 編輯 收藏 所屬分類:
Java