Junit 5

Junit5=Junit Platform+Junit Jupiter+Junit Vintag

Junit Platform:用于JVM上启动测试框架的基础服务,提供命令行,IDE和构建工具等方式执行测试的支持

Junit Jupiter:包含 JUnit 5 新的编程模型和扩展模型,主要就是用于编写测试代码和扩展代码

Junit Vintag:用于在JUnit 5 中兼容运行 JUnit3.x 和 JUnit4.x 的测试用例

JUnit 5 这个版本,主要特性:

提供全新的断言和测试注解,支持测试类内嵌

更丰富的测试方式:支持动态测试,重复测试,参数化测试等

实现了模块化,让测试执行和测试发现等不同模块解耦,减少依赖

提供对 Java 8 +版本的支持,如 Lambda 表达式,Stream API等

Junit5于Junit4annotation的差异

JUnit4

Junit5

说明

@Test

@Test

标记方法为测试方法

@Before

@BeforeEach

在每个测试执行之前执行

@After

@AfterEach

在每个测试执行之后执行

@BeforeClass

@BeforeAll

只执行一次,在所有测试和 @BeforeEach 注解方法之前

@AfterClass

@AfterAll

只执行一次,在所有测试和 @AfterEach注解方法之后

@Ignore

@Disabled

禁用执行测试

Junit5特有的annotation

Junit5

说明

@DisplayName

用来定义一个测试类并指定用例在测试报告中的展示名称

@Nested

内嵌测试类

@RepeatedTest

重复性测试

下面写一些例子来更加直观的理解Junit5

下面写一些例子

除此之外,Junit5还提供了新的断言

org.junit.jupiter.api.Assertions 。许多断言方法接受 Lambda 表达式参数,在断言消息使用 Lambda 表达式的一个优点就是它是延迟计算的,如果消息构造开销很大,这样做一定程度上可以节省时间和资源

将一个方法内的多个断言进行分组,使用 assertAll 方法:

超时操作的测试 assertTimeoutPreemptively:

异常测试:assertThrows

JUnit 5 提供方法 Assertions#assertThrows(Class<T>, Executable) 来进行测试,第一个参数为异常类型,第二个为函数式接口参数,跟 Runnable 接口相似,不需要参数,也没有返回,并且支持 Lambda表达式方式使用

Junit5参数化测试

使用 JUnit 5 进行参数化测试,除了 junit-jupiter-engine 基础依赖之外,还需要另个模块依赖:junit-jupiter-params,其主要就是提供了编写参数化测试 API。

@ParameterizedTest 作为参数化测试的必要注解,替代了 @Test 注解。任何一个参数化测试方法都需要标记上该注解。

JUnit 5 提供数据参数源方式:

基本数据源测试: @ValueSourceCSV

数据源测试:@CsvSource

外部CSV文件路径:@CsvFileSource Enum

枚举类型传入:@EnumSource

可迭代对象 的方法:@MethodSource

空值来源 :@NullAndEmptySource(@NullSource、 @EmptySource)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
JUnit 5 是 Java 编程语言的单元测试框架,它是 JUnit 团队开发的最新版本。JUnit 5 提供了一套强大的工具和功能,用于编写和执行单元测试。下面是 JUnit 5 单元测试的一些重要特性和用法: 1. 注解驱动:JUnit 5 使用注解来标记测试方法和测试类。常用的注解包括 `@Test`、`@BeforeEach`、`@AfterEach` 等。 2. 断言方法:JUnit 5 提供了丰富的断言方法,用于验证测试结果是否符合预期。例如,`assertEquals()`、`assertTrue()`、`assertNotNull()` 等。 3. 参数化测试:JUnit 5 支持参数化测试,可以通过 `@ParameterizedTest` 注解来定义参数化测试方法,并使用 `@ValueSource`、`@CsvSource` 等注解提供测试参数。 4. 嵌套测试:JUnit 5 允许在一个测试类中嵌套其他测试类,以更好地组织和管理测试代码。 5. 扩展模型:JUnit 5 引入了扩展模型,通过实现扩展接口可以自定义测试生命周期、测试报告、参数解析等行为。 6. 并发执行:JUnit 5 支持并发执行测试,可以通过 `@Execution` 注解来配置并发策略。 7. 动态测试:JUnit 5 允许在运行时动态生成测试用例,通过 `DynamicTest` 接口和 `@TestFactory` 注解实现。 8. 条件测试:JUnit 5 提供了条件测试的功能,可以根据条件来决定是否执行某个测试方法。 以上是 JUnit 5 单元测试的一些重要特性和用法。如果你还有其他问题,请继续提问。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Position 5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值