posts - 32,comments - 75,trackbacks - 0

 

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

testng.JPG

实际上外面还有一个beforeSuiteafterSuite的方法,是在测试项目开始的时候就运行了,实际上如果我的每个方法都要用到的初始化的代码,为什么要运行那么多次,如果其中有EJB这种重量级的容器要初始化,效率差可想而知。事实上TestNG可以做到更加的灵活,就是分组。

posted on 2005-12-14 10:33 fanta 阅读(4312) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: