浅谈java单元测试框架junit4/5

本文主要探讨了Java单元测试框架junit4和junit5的使用,包括基本用法如@Test、@BeforeClass等注解,参数化测试和分组测试的实现,以及junit5的新特性,如@TestEngine、JUnit Jupiter和Vintage的支持。
摘要由CSDN通过智能技术生成

0 前言

junit是一个开源的Java语言的单元测试框架。目前junit主要有版本junit3,junit4和junit5。因在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类TestCase,所以本文不再讨论junit3,只讨论使用比较多的junit4和junit5。

0.1 特性

1 基本用法

1.1 常用注解介绍

(1)@Test

使用@Test注解测试方法。但测试方法必须是 public void。方法名一般为testXXX,通常需要见名知起义。

(2)@BeforeClass和@AfterClass

  • @BeforeClass:会在测试类测试方法执行之前执行一次;
  • @AfterClass:会在测试内测试方法均执行完成后执行一次;

注意,@BeforeClass和@AfterClass注解的方法必须是static方法。

(3)@Before和@After

  • @Before:会在每个测试方法执行之前执行一次;
  • @After:会在每个测试方法执行之后执行一次;

(4)@Parameters

使用@Parameters注解数据源方法。

(5)@Ignore

使用@Ignore忽略测试方法,被该注解标识的测试方法会被忽略不执行。

1.2 测试样例

本文代码详情请见:https://github.com/X-NaN/studyjunit

public class JunitAnnotationTest {

    /**
     * @BeforeClass 注解的必须是static方法
     */
    @BeforeClass
    public static void beforeClass() {
        System.out.println("@BeforeClass: 在该测试类内所有方法之前执行,只执行一次");
    }

    @Before
    public void beforeMethod() {
        System.out.println("@Before: 在每个测试方法之前执行一次");
    }

    @Test
    public void testCaseA() {
        System.out.println("@Test: 标识测试方法testCaseA");
    }

    @Test
    public void testCaseB() {
        System.out.println("@Test: 标识测试方法testCaseB");
    }

    /**
     * 异常测试
     */
    @Test(expected = ArithmeticException.class)
    public void testCaseException() {
        System.out.println("@Test: 标识测试方法testCaseException, 异常测试");
        System.out.println(1 / 0);
    }

    /**
     * 超时测试
     *
     * @throws InterruptedException
     */
    @Test(timeout = 1000)
    public void testCaseTimeOut() throws InterruptedException {
        System.out.println("@Test: 标识测试方法testCaseTimeOut,超时");

        // 若方法的超时时间超过timeout,则用例失败,否则成功
        Thread.sleep(1000);
    }

    @Ignore
    public void testCaseC() {
        System.out.println("@Ignore: 标识测试方法被忽略,不执行");
    }

    @After
    public void afterMethod() {
        System.out
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值