java中junit4的使用

Junit 4 的使用

前言

本文会介绍junit4 的单元测试的使用方式,以及相关的注解。JUnit 4是一种与其之前的版本完全不同的API,它根据Java 5.0中的新特征(注解,静态导入等)构建而成。如你所见,JUnit 4更简单、更丰富和更易于使用,而且它引入了更为灵活的初始化和清理工作,还有限时的和参数化测试用例。

junit 4 使用方式

放在path里面

第一步:在你需要添加Junit的工程下,右键工程
第二步:点击configure Build Path…
第三步:点击Add Library
第四步:选中JUnit,点击Next
第五步:选中JUnit library version的版本,一般选中4
第六步:点击Finish
2.定义一个测试类.(不再继承TestCase类)
测试类的名字: XxxTest
3.在EmployeeDAOTest中编写测试方法:如
@Test
public void testXxx() throws Exception {
}
注意:方法是public修饰的,无返回的,该方法上必须贴有@Test标签,XXX表示测试的功能名字.
4.选择某一个测试方法,鼠标右键选择 [run as junit],或则选中测试类,表示测试该类中所有的测试方法.
以后单元测试使用最多的方式:

  若要在测试方法之前做准备操作:
  EmployeeDAOTest随意定义一个方法并使用@Before标注:
  @Before
  public void xx() throws Exception方法
  若要在测试方法之后做回收操作:
  EmployeeDAOTest随意定义一个方法并使用@After标注:
  @After
  public void xx() throws Exception方法
  特点:每次执行测试方法之前都会执行Before方法,每次执行测试方法之后都会执行After方法;
  有没有方式之初始化一次,和最终销毁一次呢?
  @BeforeClass标签:在所有的Before方法之前执行,只在最初执行一次. 只能修饰静态方法
  @AfterClass标签:在所有的After方法之后执行,只在最后执行一次.

junit4 断言

参考:https://www.cnblogs.com/xuyuanjia/p/6084755.html
java中junit4的使用_第1张图片

junit4 的常用注解

  • junit4 的注解包括哪些

(1)@BeforeClass:所有测试方法调用前执行一次,在测试类没有实例化之前就已被加载,需用static修饰;

  • 有些时候,一些测试需要共享代价高昂的步骤(如数据库登录),这会破坏测试独立性,通常是需要优化的
    使用@BeforeClass注解一个public static void方法,并且该方法不带任何参数,会使该方法在所有测试方法被执行前执行一次,并且只执行一次
    父类的@BeforeClass注解方法会在子类的@BeforeClass注解方法执行前执行。

(2)@Before:每一个测试方法调用前必执行的方法;

  • 当编写测试方法时,经常会发现一些方法在执行前需要创建相同的对象
    使用@Before注解一个public void方法会使该方法在@Test注解方法被执行前执行(那么 就可以在该方法中创建相同的对象)
    父类的@Before注解方法会在子类的@Before注解方法执行前执行

(3)@Test:将一个方法标记为测试方法;

  • @Test注解的public void方法将会被当做测试用例 JUnit每次都会创建一个新的测试实例,然后调用@Test注解方法
    任何异常的抛出都会认为测试失败

    @Test注解提供2个参数:

    1,“expected”,定义测试方法应该抛出的异常,如果测试方法没有抛出异常或者抛出了一个不同的异常,测试失败

    2,“timeout”,如果测试运行时间长于该定义时间,测试失败(单位为毫秒)

java中junit4的使用_第2张图片

(4)@After:

  • 如果在@Before注解方法中分配了额外的资源,那么在测试执行完后,需要释放分配的资源。
    使用@After注解一个public void方法会使该方法在@Test注解方法执行后被执行即使在@Before注解方法、@Test注解方法中抛出了异常,所有的@After注解方法依然会被执行,见示例父类中的@After注解方法会在子类@After注解方法执行后被执行

java中junit4的使用_第3张图片
java中junit4的使用_第4张图片

(5)@AfterClass:所有测试方法调用后执行一次,在测试类没有实例化之前就已被加载,需用static修饰;

  • 如果在@BeforeClass注解方法中分配了代价高昂的额外的资源,那么在测试类中的所有测试方法执行完后,需要释放分配的资源。
    使用@AfterClass注解一个public static void方法会使该方法在测试类中的所有测试方法执行完后被执行
    即使在@BeforeClass注解方法中抛出了异常,所有的@AfterClass注解方法依然会被执行
    父类中的@AfterClass注解方法会在子类@AfterClass注解方法执行后被执行

(6)@Ignore:暂不执行该方法;

  • 对包含测试类的类或@Test注解方法使用@Ignore注解将使被注解的类或方法不会被当做测试执行
    JUnit执行结果中会报告被忽略的测试数

java中junit4的使用_第5张图片

  • junit4 执行一个单元测试的顺序为

    @BeforeClass -> @Before -> @Test -> @After -> @AfterClass;

    每一个测试方法的调用顺序为:

    @Before -> @Test -> @After;

实际例子

参照 网站:以及和junit3之间的比较

你可能感兴趣的:(测试用例)