单元测试流程控制
Spring Boot默认使用JUnit5作为测试框架,而JUnit5提供了丰富的API和注解,方便我们对测试的流程做控制
断言
断言机制就是在测试方法中编写判断逻辑,如果满足逻辑则测试成功,不满足则测试失败,简单的断言有以下几种:
- assertEquals:判断两个对象或两个原始类型是否相等
- assertNotEquals:判断两个对象或两个原始类型是否不相等
- assertSame:判断两个对象引用是否指向同一个对象
- assertNotSame:判断两个对象引用是否指向不同的对象
- assertTrue:判断给定的布尔值是否为 true
- assertFalse:判断给定的布尔值是否为 false
- assertNull:判断给定的对象引用是否为 null
- assertNotNull:判断给定的对象引用是否不为 null
- assertArrayEquals:判断两个对象或原始类型的数组是否相等
以assertEquals举例,示例中判断a,b两个值是否相等,还可以为断言添加不满足时的错误信息
class MyTest {
@Test
void test() {
int a = 1;
int b = 2;
Assertions.assertEquals(a, b);
}
}
执行这个测试用例就会报错

注意,当断言判断不满足时,后续的代码都不会继续执行
组合断言
组合断言用于做多个判断,使用assertAll方法传入任意多个Executable接口,这是一个函数式接口,我们可以使用Lambda表达式
class MyTest {
@Test
void test() {
int a = 1;
int b = 2;
Assertions.assertAll(
() -> Assertions.assertNotEquals(a, b),
()

本文介绍了Spring Boot中使用JUnit5进行单元测试时的流程控制,包括断言(如组合断言、异常断言、超时断言和快速失败)、前置条件、嵌套测试用例以及参数化测试的用法。详细阐述了各种断言方法及其应用场景,以及如何通过注解实现参数化测试并指定入参。
最低0.47元/天 解锁文章
2666

被折叠的 条评论
为什么被折叠?



