1. JDK 5 Annotations (JDK 1.4 可以用JavaDoc代替).
一個(gè)典型的Junit的測(cè)試類(lèi)
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
}
}
對(duì)應(yīng)的TestNG的測(cè)試類(lèi),我們寫(xiě)最簡(jiǎn)單的情況。
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
}
}
這樣寫(xiě)可以比較明顯的看到兩者的對(duì)應(yīng)關(guān)系(注意TestNG的方法的名字是可以隨便取的,取一樣的名字只是為了讓你容易找到對(duì)應(yīng)的關(guān)系)
這說(shuō)明TestNG是從Junit發(fā)展而來(lái)的,至少借鑒了很多Junit的思想(實(shí)際上TestNG的作者本身就是Junit的小組成員之一)。
我們從最表面的現(xiàn)象來(lái)看看吧
l TestNG沒(méi)有繼承任何類(lèi),甚至接口!!
l JDK 5 Annotations
這2者是息息相關(guān)的,為什么我們不用繼承任何類(lèi),因?yàn)樾畔⒍荚谧⑨尷锩妫@樣會(huì)帶來(lái)很多好處(絕不僅僅是命名的方便)。
2. 靈活的test configuration
先看一下Junit的執(zhí)行順序
Setup( ) test1( ) tearDown( ) Setup( ) test2( ) tearDown( )…………
下面是TestNG的

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