日常提交,关于Spring Unit Test

This commit is contained in:
2022-09-20 23:30:47 +08:00
parent 79144f266a
commit 1c58d38be0

View File

@@ -1,2 +1,49 @@
# Spring单元测试 # Spring单元测试
## SpringBootTest
在SpringBoot中提供了@SpringBootTest注解。当需要SpringBoot特性时可以通过使用@SpringBootTest注解来作为@ContextConfiguration的替代@SprngBootTest创建ApplicationContext该context在test中被使用。
## @AfterAll
该注解标明的方法会在所有Test执行完成之后再执行
> ### @AfterAll注解特性
> - @AfterAll注解的方法必须含有void类型返回值
> - @AfterAll注解标注方法不能为private
> - 默认情况下,@AfterAll注解的方法必须是static修饰的
> ### 在非static方法中标注@AfterAll
> 在非static方法上标注@AfterAll需要在class上标注@TestInstance(TestInstance.Lifecycle.PER_CLASS)。
> 因为默认情况下TestInstance的默认生命周期是PER_METHOD
> ```JAVA
> @TestInstance(TestInstance.Lifecycle.PER_CLASS)
> public class BeforeAndAfterAnnotationsUnitTest {
>
> String input;
> Long result;
> @BeforeAll
> public void setup() {
> input = "77";
> }
>
> @AfterAll
> public void teardown() {
> input = null;
> result = null;
> }
>
> @Test
> public void whenConvertStringToLong_thenResultShouldBeLong() {
> result = Long.valueOf(input);
> Assertions.assertEquals(77l, result);
> }
> }
> ```
## @AfterEach
该注解标明的方法,在每次@Test标注方法执行完成之后都会被执行
> ### @AfterEach特性
> - 标注方法返回值为空
> - 标注方法不为private
> - 标注方法不是static
## @BeforeAll
类似@AfterAll
## @BeforeEach
类似@AfterEach