0


spring--单元测试

单元测试

单元测试

Junit5单元测试框架,简化编程和完成测试,包含junit platment:测试平台,是在java虚拟机上启动测试框架的基础,不仅支持junit制作的测试引擎,还可以接入其他测试引擎 junit Jupiter 测试引擎在junit platment上运用, junit vintage 可兼容junit3和4 需要注意springboot2.4以上版本移除了对默认对vintage的依赖,需测试junit‘4 自行引入依赖(vintage-engine(exclusion hamcrest-core))

 Springboot整合junit以后,编写测试方法为@Test  Junit类具有spring的功能,@Autowired(自动注入spring模板中的bean,以此来使用bean来测试)。如Transactional标注测试方法(为每一个测试方法创建一个单独的事务,保证测试的独立性和隔离性)

Junit5的常用注解

JUnit 5 User Guide

@Test 测试

@ParameterizedTest 参数化测试

@RepeatedTest 可重复测试

@DisplayName 为测试类或测试方法设置展示名称

@BeforeEach 在每个测试单元前执行

@AfterEach 在每个测试单元后执行

@BeforeAll 在所有单元测试前执行

@AfterAll 在所有单元测试后执行

@Tag 表示单元测试类别

@Disabled 表示测试类或测试方法不执行

@Timeout 测试超时返回错误

@ExtendWith 为测试类或测试方法提供拓展类引用

断言(assertion)hutool

测试方法的核心部分,增设数据判断条件,若不符合业务要求,则程序测试失败,防止资源浪费,如在用户输入年龄时,输入后,判断是否为负数,若是负数,则报错输出“年龄为负数”失败,若为正数则存到数据库中,继续运行。

简单断言

   用来对单个值进行的验证

assertEquals

assertNotEquals

assertSame

assertNotSame

assertTrue

assertFalse

assertNull

assertNotNull

数组断言

assertArrayEquals来判断两个数据或原始类型的数组是否相等

组合断言

  AssertAll接收多个函数形式接口的实例作为验证断言

异常断言

Assertions.assertThrows(),配合函数式编程使用

超时断言

Assertions.assertTimeout(){测试的执行代码}为测试方法设置超出时间

快速失败

fail()直接测试失败

前置条件(assumptions)

类似于断言,区别在于不满足前置条件只会使测试方法的执行终止,前置条件是测试方法执行的前提,不满足条件,不执行

AssumeTrue assumeFalse确保给定的条件为true或false,不满足条件会使测试执行终止,assumingThat的参数是表示条件的布尔值和对应的Executable接口的实现对象,只有满足条件时,Executable对象会被执行,当条件不满足时并不终止

嵌套测试

@Nested实现嵌套测试,内部可使用@AfterEach@BeforeEach

参数化测试

使不同的参数多次运行测试 @ValueSource 指定入参,将不同的参数进行多次单元测试

@ValueSource 为参数测试指定入参来源

@NullSource 提供一个Null的入参

@EnumSource 提供一个枚举入参

@CsvFileSource 读取指定csv文件内容作为参数化入参

@MethodSource 读取指定方法的返回值作为参数化测试入参(注意方法返回需要是一个流)


本文转载自: https://blog.csdn.net/m0_75182143/article/details/140667940
版权归原作者 sheep ᐡ•͈ ·̭ •͈ᐡ 所有, 如有侵权,请联系我们删除。

“spring--单元测试”的评论:

还没有评论