2024年4月15日发(作者:)

junit5面试题

1. 请介绍一下JUnit5的基本概念和特点。

JUnit5是Java编程语言的一个单元测试框架,它是JUnit4的升级版

本,提供了更好的扩展性和易用性。JUnit5的主要特点包括:

- 基于注解的测试:JUnit5使用注解来定义测试方法和测试类,使得

测试代码更加简洁明了。

- 支持参数化测试:JUnit5支持使用@ParameterizedTest注解进行

参数化测试,可以方便地对多个输入参数进行测试。

- 支持嵌套测试:JUnit5允许在一个测试类中嵌套另一个测试类,这

样可以更好地组织和管理测试代码。

- 支持扩展机制:JUnit5提供了扩展机制,可以通过编写自定义注解

和规则来扩展框架的功能。

2. 请解释一下JUnit5中的注解和规则。

在JUnit5中,注解用于定义测试方法和测试类,规则用于定义测试执

行的行为。以下是一些常用的注解和规则:

- @Test:用于标记一个方法为测试方法,JUnit5会自动识别并执行这

个方法。

- @BeforeEach:用于标记一个方法在每个测试方法执行前都会执行

一次。

- @AfterEach:用于标记一个方法在每个测试方法执行后都会执行一

次。

- @BeforeAll:用于标记一个方法在所有测试方法执行前都会执行一

次。

- @AfterAll:用于标记一个方法在所有测试方法执行后都会执行一次。

- @DisplayName:用于设置测试方法的显示名称,方便阅读和理解

测试结果。

- @Disabled:用于禁用一个测试方法,使其不会被执行。

- @ExtendWith:用于指定一个类作为测试类的扩展,可以在这个类

中定义一些共享的资源和方法。

- @RepeatedTest:用于标记一个方法需要重复执行多次,可以使用

@RepeatedTest(n)指定重复次数。

- @Timeout:用于设置一个方法的非常大执行时间,如果超过这个时

间还没有执行完,则认为该方法失败。

3. 请介绍一下JUnit5中的断言(Assertions)。

断言是单元测试中非常重要的一个概念,它用于验证被测代码的行为

是否符合预期。在JUnit5中,断言是通过断言类和方法来实现的。以

下是一些常用的断言类和方法:

- assertEquals(expected, actual):用于判断两个值是否相等,如果

不相等则抛出异常。

- assertNotEquals(expected, actual):用于判断两个值是否不相等,

如果相等则抛出异常。

- assertTrue(condition):用于判断一个条件是否为真,如果为假则抛

出异常。

- assertFalse(condition):用于判断一个条件是否为假,如果为真则

抛出异常。

- assertNotNull(object):用于判断一个对象是否不为null,如果为

null则抛出异常。

- assertNull(object):用于判断一个对象是否为null,如果不为null

则抛出异常。