SpringBoot-单元测试

在开发过程中,如果要测试某个service类的接口,按照以下流程操作:

引入依赖:

1
2
3
4
5
<dependency>    
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

在单元测试类上添加@SpringTest@RunWith(SpringRunner.class) 两个注解

方法上添加@Test注解,注意是org.junit.jupiter.api.Test

这样就可以正常的将service自动注入进来了

如果要让单元测试事务回滚,只需要让测试类继承AbstractTransactionalJUnit4SpringContextTests类就行了

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@SpringBootTest
@RunWith(SpringRunner.class)
public class BlogServiceTest extends AbstractTransactionalJUnit4SpringContextTests {

@Autowired
private BlogService service;

@Test
public void jdbcTest(){
List<Blog> blogs = service.listBlog();
System.out.println(blogs);
}

@Test
public void testDeleteAll(){
System.out.println(service.deleteAll());
}
}

测试DeleteAll()接口时会删除所有的记录,测试完成会回滚,恢复所有删除的数据。