JUnit5 @AfterEach 注解替换了 JUnit4 中的@After注解。它用于表示应在当前类中的每个@Test方法之后执行注解方法。

@AfterEach注解用法

使用@AfterEach注解方法,如下所示:

@AfterEach
public void cleanUpEach(){System.out.println("After Each cleanUpEach() method called");
}

带注解的@AfterEach方法不得为静态方法,否则它将引发运行时错误。

org.junit.platform.commons.JUnitException: @AfterEach method 'public static void com.howtodoinjava.junit5.examples.JUnit5AnnotationsExample.cleanUpEach()' must not be static.at org.junit.jupiter.engine.descriptor.LifecycleMethodUtils.assertNonStatic(LifecycleMethodUtils.java:73)at org.junit.jupiter.engine.descriptor.LifecycleMethodUtils.lambda$findAfterEachMethods$3(LifecycleMethodUtils.java:60)at java.util.ArrayList.forEach(ArrayList.java:1249)at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080)at org.junit.jupiter.engine.descriptor.LifecycleMethodUtils.findAfterEachMethods(LifecycleMethodUtils.java:60)

@AfterEach注解示例

让我们举个例子。 我使用了一个Calculator类并添加了一个add方法。 我将使用@RepeatedTest注解对其进行 5 次测试。 此注解将导致add测试运行 5 次。 对于每次运行的测试方法,@AfterEach带注解的方法也应每次运行。

package com.howtodoinjava.junit5.examples;import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.RepetitionInfo;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.runner.RunWith;@RunWith(JUnitPlatform.class)
public class AfterAnnotationsTest {@DisplayName("Add operation test")@RepeatedTest(5)void addNumber(TestInfo testInfo, RepetitionInfo repetitionInfo) {System.out.println("Running test -> " + repetitionInfo.getCurrentRepetition());Assertions.assertEquals(2, Calculator.add(1, 1), "1 + 1 should equal 2");}@AfterAllpublic static void cleanUp(){System.out.println("After All cleanUp() method called");}@AfterEachpublic void cleanUpEach(){System.out.println("After Each cleanUpEach() method called");}
}

其中Calculator类是:

package com.howtodoinjava.junit5.examples;public class Calculator
{public int add(int a, int b) {return a + b;}
}

现在执行测试,您将看到以下控制台输出:

Running test -> 1
After Each cleanUpEach() method calledRunning test -> 2
After Each cleanUpEach() method calledRunning test -> 3
After Each cleanUpEach() method calledRunning test -> 4
After Each cleanUpEach() method calledRunning test -> 5
After Each cleanUpEach() method calledAfter All cleanUp() method called

显然,每次测试方法调用时都将调用@AfterEach注解的cleanUpEach()方法。

JUnit5 @AfterEach注解示例相关推荐

  1. JUnit5 @AfterAll注解示例

    JUnit5 @AfterAll 注解替换了 JUnit4 中的@AfterClass注解.它用于表示应在当前测试类中的所有测试之后执行注解方法. @AfterAll注解用法 使用@AfterAll注 ...

  2. JUnit5 @RepeatedTest注解示例

    通过 JUnit5 @RepeatedTest注解,可以编写可以多次运行的可重复测试模板. 频率可以配置为@RepeatedTest注解的参数. 1. @RepeatedTest注解用法 要创建可重复 ...

  3. JUnit5 @BeforeEach注解示例

    JUnit5 @BeforeEach注解替换了 JUnit4 中的@Before注解.它用于表示应在当前类中的每个@Test方法之前执行注解方法. @BeforeEach注解用法 使用@BeforeE ...

  4. JUnit5 @BeforeAll注解示例

    JUnit5 @BeforeAll 注解替换了 JUnit4 中的@BeforeClass注解. 它用于表示应在当前测试类中的所有测试之前执行注解方法. @BeforeAll注解用法 使用@Befor ...

  5. JUnit5 @Tag注解示例

    JUnit5 @Tag 可用于从测试计划中过滤测试用例. 它可以帮助针对不同的环境,不同的用例或任何特定要求创建多个不同的测试计划.您可以通过仅在测试计划中包括那些标记的测试或通过从测试计划中排除其他 ...

  6. 七、springboot 单元测试阶段 (2、JUnit5常用注解,3、断言(assertions) )

    2.JUnit5常用注解 JUnit5的注解与JUnit4的注解有所变化 JUnit 5 User Guide @Test :表示方法是测试方法.但是与JUnit4的@Test不同,他的职责非常单一不 ...

  7. JUnit5 测试套件示例

    使用 JUnit5 测试套件,您可以运行分散到多个测试类和不同包中的测试. JUnit5 提供了两个注解:@SelectPackages和@SelectClasses以创建测试套件. 此外,您可以使用 ...

  8. Spring @RequestMapping注解示例

    在 spring mvc hello world 应用程序中,我们看到了具有端到端功能(不包括任何数据库访问)的非常基本的员工管理应用程序. 在学习spring mvc 模块的下一步中,我将提供@Re ...

  9. JUnit5 @Disabled测试示例

    JUnit @Disabled注解可用于禁用测试套件中的测试方法. 该注解可以应用于测试类以及各个测试方法. 它仅接受一个可选参数,它指示此测试被禁用的原因. @Disabled的测试类 将@Disa ...

最新文章

  1. 进一步认识golang中的并发
  2. Web安全学习笔记——SQL注入
  3. python学哪个版本-我现在应该学习哪个版本的Python?哪个方向更好?
  4. python免费课程讲解-Python快速入门免费课程
  5. linux创建进程fork函数和vfork函数
  6. 完全理解NIO Selector
  7. 如何选一台好的中低端的笔记本电脑
  8. Linux 及其它类 Unix 系统的系统服务管理和控制程序(初始化系统/init system)简单梳理
  9. python assertion failed_PyCharm报错与解决方法一览
  10. Android Handler的内存泄露场景分析
  11. 复旦大学邱锡鹏教授发布《神经网络与深度学习》教材,配备代码和章节练习...
  12. 【u008】瑞瑞的木棍
  13. window.postMessage
  14. POJ2063 Investment(完全背包)
  15. C语言编程之学习putpixel画点
  16. 程序员做自媒体变现,可以选择的平台有哪些?各自的特点是什么?
  17. 6个最常用的Word论文排版技巧
  18. 2年前端 杭州 面试 集合 面经 前端
  19. T100——错误信息提示传入参数显示
  20. HAL + RT_Thread = STM32外设用不了? NoNoNo!!

热门文章

  1. 考研数学三考摆线吗_考研数学草稿纸发几张?可以多打几张准考证当草稿纸用吗?...
  2. VMware vSphere之vCenter安装
  3. Gartner:阿里云亚太市场排名第一
  4. 华为云回应“关闭私有云”传闻 将进行业务调整形成混合云产品部
  5. 红帽高级总监谈 OpenJDK 的未来:Java 的未来从未如此光明
  6. 消息中间件学习总结(6)——RocketMQ之RocketMQ大数据畅想
  7. python读取文件名有中文_[请教]python的中文文件名处理
  8. linux 7 kdump设置,Centos7/RHEL7 开启kdump
  9. 给自己的网站添加网易云音乐歌单吧^ ^
  10. 如何使用敏捷开发来赢得太阳能竞速赛