哪种是对 Spring Boot Rest API 进行端到端测试的最佳方法? [关闭]

Posted

技术标签:

【中文标题】哪种是对 Spring Boot Rest API 进行端到端测试的最佳方法? [关闭]【英文标题】:Which is the best way to do end to end testing of Spring Boot Rest APIs? [closed] 【发布时间】:2018-11-25 13:00:52 【问题描述】:

我已经在 google 和 *** 中检查了 Spring Boot Rest API 的端到端测试。

我想立即测试控制器 -> 服务 -> 存储库。

我发现两种方法是有效的:

1. TestRestTemplate: 
   Single call to the controller method with in-memory database configuration for repository.
2. MockMvc: 
   Create 2 Test classes. 
   one for Controller->Service 
   and one for Service->Repository. 
   Is there any way to club both 2 classes into one class.

这是从上述两种方法对 Spring Boot Rest API 进行“端到端测试”的最佳方法???

【问题讨论】:

如果您想通过点击 http 端点来测试 APIS,请放心 (rest-assured.io) 可以考虑 搜索 REST API 的集成测试。您正在查看的内容是用于对服务的各个方面进行单元测试。如果您希望“一次完成所有事情”进行测试,那么集成测试就是它。 以上两种方法(TestRestTemplate、MockMvc)哪个是最好的? 【参考方案1】:

我想说进行 END2END 测试的更好方法是使用 TestRestTemplate。它实际上会在随机端口(您配置的)启动服务器并调用 api 本身进行测试。通过这种方式,它模仿正在运行的服务器的实际行为并使用默认配置和 bean。

在我的测试经验中,MockMvc 主要用于测试 web 层,也就是控制器。我会使用模拟的服务 bean 来替换原来的服务 bean。所以我可以测试控制器层本身的行为,而不必担心服务层中的错误。更重要的是,我不必在测试之前设置任何数据库。

所以我想说,对于 E2E 测试,你可以选择第一种方法。

【讨论】:

以上是关于哪种是对 Spring Boot Rest API 进行端到端测试的最佳方法? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 2 Rest Api Example

Spring Boot - 模拟对外部 API 的 POST REST 请求

Spring Boot Rest api 与 Spring Kafka

spring boot rest api测试得到404错误

spring boot mybatis

在 Spring Boot REST API 中上传文件