【发布时间】:2020-08-02 17:41:03
【问题描述】:
三个 API 中的哪一个:TestRestTemplate、WebTestClient、RestAssured 对于 Spring Boot Rest API(非反应式)的以下方面的集成测试最有效:
- 确保增量版本与 Spring boot 的兼容性。
- 易于使用且广泛的断言,用于检查状态代码、标头、JSON/XML 有效负载验证、响应时间等。
- 可以测试spring容器配置。
- 跨所有端点重复使用特定检查的功能。
- 是最稳定的,因此是行业常见的做法。
很少有初步发现会阻止其中一个被标记为明显的赢家:
TestRestTemplate 和 WebTestClient 是 Spring 内置 API,因此可通过 Spring Boot 自动配置。最新版本的 RestAssured(4.0.0 及更高版本)可能会出现 Spring Boot 问题(java.lang.NoClassDefFoundError: io/restassured/mapper/factory/GsonObjectMapperFactory)并且需要显式添加依赖项。
与 TestRestTemplate 相比,WebTestClient(一个 Fluent API)似乎具有很好且易于使用的语法,但它是非常新的,并且没有足够的示例显示其在非反应式 Rest API 中的使用以及广泛的断言 API 的可用性
RestTemplate(TestRestTemplate 所基于的 API)将在未来的 Spring Boot 版本中被弃用。
来自经验丰富的开发人员的反馈会很有帮助。
【问题讨论】:
标签: spring-boot rest testing