哪种是对 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 请求