单元测试流程控制
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),
(