Junit

概述

JUnit 是Java生态系统中最受欢迎的单元测试框架之一。

Maven依赖关系

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.8.1</version>
    <scope>test</scope>
</dependency>

该版本需要Java8才能工作。

架构

  • JUnit平台
  • JUnit Jupiter
  • JUnit Vintage

JUint平台

该平台负责在JVM上启动测试框架,它在JUnit及其客户端(如构建工具)之间定义了一个稳定而强大的接口。该平台可轻松将客户端与JUint集成,以发现和执行测试。它还定义了TestEngineAPI,用于开发在JUnit平台上运行的测试框架。通过实现自定义TestEngine,我们可以将第三方测试库直接插入JUnit。

JUnit Jupiter

此模块包括用于在JUnit5中编写测试的新编程和扩展模型。与JUnit4相比,新的注解包括:

注解 含义
@TestFactory 表示作为动态测试的测试工厂的方法
@DisplayName 定义测试类或测试方法的自定义显示名称
@Nested 表示带注解的类是嵌套的非静态测试类
@Tag 声明用于过滤测试的标记
@ExtendWith 注册自定义扩展
@BeforeEach 表示带注解的的方法将在每个测试方法执行之前执行(代替@Before)
@AfterEach 表示带注解的方法将在每个测试方法执行之后执行(代替@After)
@BeforeAll 表示带注解的方法将在该类所有方法执行之前执行(代替@BeforeClass)
@AfterAll 表示带注解的方法将在该类所有方法执行之后执行(代替@AfterClass)
@Disable 禁用测试类或方法(代替@Ignore)

JUnit Vintage

JUnit Vintage支持在JUnit5上运行基于JUnit3和JUnit4的测试。

基本注解

@BeforeAll和@BeforeEach

@BeforeAll
static void setup() {
    log.info("@BeforeAll - executes once before all test methods in this class");
}

@BeforeEach
void init() {
    log.info("@BeforeEach - executes before each test method in this class");
}

具有@BeforeAll注解的方法必须是静态的。

@DisplayName 和Disable

@DisplayName("Single test successful")
@Test
void testSingleSuccessTest() {
    log.info("Success");
}

@Test
@Disabled("Not implemented yet")
void testShowSomething() {
}

我们可以使用注解更改显示名称或禁用带有注解的方法。

AfterEach和@AfterAll

@AfterEach
void tearDown() {
    log.info("@AfterEach - executed after each test method.");
}

@AfterAll
static void done() {
    log.info("@AfterAll - executed after all test methods.");
}

带有@AfterAll注解的方法也必须是静态的。

@Test

为了识别测试,我们将添加@Test注解。我们可以在一个类中拥有任意数量的@Test方法,但是提倡将相关内容放在放在一起。另外注意,测试不能说是私有的,也不能有返回值,否则它将会被忽略。

断言和假设

JUint试图充分利用Java 8的新功能,尤其是Lambda表达式。

断言

断言是支持在测试中断言条件的方法,这些方法可通过JUni

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值