Junit常用注解梳理

1. @Test

在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类。在junit4中,定义一个 测试方法变得简单很多,只需要在方法前加上@Test就行了。

注意:测试方法必须是public void,即公共、无返回数据。可以抛出异常。

2. @Ignore

有时候我们想暂时不运行某些测试方法\测试类,可以在方法前加上这个注解。在运行结果中,junit会统计忽略的用例数,来提醒你。但是不建议经常这么做,因为这样的坏处时,容易忘记去更新这些测试方法,导致代码不够干净,用例遗漏。

3. @Before

与@BeforeClass的区别在于,@Before不止运行一次,它会在每个用例运行之前都运行一次。主要用于一些独立于用例之间的准备工作。比如两个用例都需要读取数据库里的用户A信息,但第一个用例会删除这个用户A,而第二个用例需要修改用户A。那么可以用@BeforeClass创建数据库连接。用@Before来插入一条用户A信息。

注意:必须是public void,不能为static。不止运行一次,根据用例数而定。

4. @After

与@Before对应。

5. @BeforeClass

当我们运行几个有关联的用例时,可能会在数据准备或其它前期准备中执行一些相同的命令,这个时候为了让代码更清晰,更少冗余,可以将公用的部分提取出来,放在一个方法里,并为这个方法注解@BeforeClass。意思是在测试类里所有用例运行之前,运行一次这个方法。例如创建数据库连接、读取文件等。

@BeforeClass注解方法这个方法只会运行一次。且必须为public static void 方法,即必须为公共、静态、无法回值方法。否则运行时会报诸如一下异常:

java.lang.Exception: Method beforeClassMth() should be static
java.lang.Exception: Method afterClassMth() should be public

6. @AfterClass

与@BeforeClass对应。

7. Demo

package com.junit.test;

import org.junit.*;

/**
 * Created by frank on 2018/6/27.
 */
public class JunitDemo {

    @BeforeClass
    public static void beforeClassMth(){
        System.out.println("@BeforeClass:所有测试用例执行前执行该方法!");
    }

    @Before
    public void beforeMth(){
        System.out.println("@Before:测试用例执行前会执行该方法");
    }

    @Test
    public void testMth1(){
        System.out.println("testMth1测试方法一");
    }

    @Test
    public void testMth2(){
        System.out.println("testMth2测试方法二");
    }

    @Ignore
    @Test
    public void testIgnoreMth(){
        System.out.println("测试方法二");
    }

    @After
    public void aftherMth(){
        System.out.println("@After:测试用例方法执行后会执行该方法");
    }

    @AfterClass
    public static void afterClassMth(){
        System.out.println("@AfterClass:所有测试用例执行完毕,执行该方法");
    }
}

运行结果:

@BeforeClass:所有测试用例执行前执行该方法!
@Before:测试用例执行前会执行该方法
testMth2测试方法二
@After:测试用例方法执行后会执行该方法
@Before:测试用例执行前会执行该方法
testMth1测试方法一
@After:测试用例方法执行后会执行该方法

Test ignored.
@AfterClass:所有测试用例执行完毕,执行该方法

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值