Spring Boot API的单元测试

问题描述 投票:1回答:1

我正在开发Spring Boot Web API,目前正在编写所需的单元测试。

我想知道:为控制器编写单元测试(JUnit + Mockito)是否足够?因为控制器是我应用程序的入口点,并且在服务端实现的所有逻辑都是从公开的API调用的,所以为什么我需要为服务端编写测试?

spring-boot junit mockito spring-boot-test
1个回答
0
投票
您的JUnit(最好为5)和Mockito测试(可能使用MockMvc是非常好的单元测试),可以涵盖Web通信问题,例如:HTTP请求类型,内容类型,编码,输入和输出参数JSON(反序列化,错误处理等。最好在模拟服务层时进行测试。因此,您可以轻松地处理许多Web案例,而无需在数据库中准备数据等。

核心逻辑也必须进行测试。取决于它是什么,以单位方式进行测试可能是可行的(最容易编写,可以涵盖很多-甚至是案例)。可以通过一些集成测试来补充它,以验证它也可以在集成中正常工作(Spring Beans,DB等)。

[如果需要,您还可以通过控制器,服务到数据库/数据存储(如果有)的服务,通过(真实)HTTP请求通过Web调用编写一些E2E测试,但是我仅将其限制在最重要的使用场景下在您的CI / CD管道中以验证部署是否成功完成。

免责声明。我发现这种方法在多种情况下很有用,但在某些其他情况下,一定要更改平衡点以更好地进行测试可能会很好。

© www.soinside.com 2019 - 2024. All rights reserved.