基于注释的Junit4单元测试

来源:互联网 发布:新的淘宝店怎样做推广 编辑:程序博客网 时间:2024/06/08 14:39

Junit4以前,要做基于单元的测试, 需要重新定义一个类,有关此种方法的测试已经有很多的资料,有兴趣的可以查看一下。

现在已经有很多的测试框架,可以是基于Java 注释的,用这种方法测试时,不用再新建一个新的类,在类的内部进行测试。JUnit4 就支持这种功能.

如下,新建一个类:

  

public class SampleTest

{

    public int getInt()

    {

        return 10;

    }

}

 

现在,要测试SampleTest 类的getInt方法,此时,不需要新建一个类,而是在类的内部做如下的变动:

 

import static org.junit.Assert.*;

import org.junit.Test;

 

public class SampleTest

{

    public int getInt()

    {

        return 10;

    }

 

   

    @Test

    public void MyTest()

    {

        assertEquals(getInt(), 10);

    }

}

 

然后,run as JUnit Test ,就可以看到大家熟悉的进度条,如果通过,是绿色的,当然,红色是没有通过。

同时,很时显,如果要用到 Junit4, 需要在项目中引用 Juit4,可不是 Junit3 呀,因为,Junit3 不支持基于注释的测试。

从上面的代码可以看到,把原来需要在新建测试类中增加的测试方法,用一个“@Test”引入到自已类中来,这种测试方法很简单,也很方便。

另外,Junit4 还提供了其它的一些  Annotation, 比如,想忽略一个测试方法,却又不想删除它,怎么办?

import static org.junit.Assert.*;

import org.junit.Ignore;

import org.junit.Test;

 

public class SampleTest

{

    public int getInt()

    {

    return 10;

    }

 

    @Test

    public void MyTest()

    {

    System.out.println("开始 MyTest 测试");

    assertEquals(getInt(), 10);

    }

   

    @Ignore

    @Test

    public void MyTestOfIgnore()

    {

    System.out.println("开始 MyTestOfIgnore 测试");

    assertEquals(getInt(), 10);

    }

}

输出如下:

开始 MyTest 测试

虽然测试了两个方法,但其实第二个方法MyTestOfIgnore 是没有测试的,被忽略了。如果用到这个Annotation,相应的要引入一些包。

import org.junit.Ignore;

还有以下的一些 Annotation

@Before   测试前的初始化

@After    测试完成后的释放资源

@BeforeClass  在测试前针对所有的测试,只执行一个,该方法必须为 void static

@AfterClass   在测试后针对所有的测试执行,只执行一次,也是 void static

以上所有的 Annotation, 按如下的顺序执行:

 

@BeforeClass

@Before

@Test

@After

@AfterClass

原创粉丝点击