java - MockMvc、RestAssured 和 TestRestTemplate 有什么区别?

标签 java spring-boot rest-assured spring-boot-test mockmvc

据我所知,MockMvc 只是在测试 Controller,并模拟 Service 层。

同时 RestAssured 和 TestRestTemplate 正在测试我们 API 的运行实例。

这样对吗? RestAssured 和 Spring Boot 的 TestRestTemplate 有什么区别?

最佳答案

MockMvcspring-test 中的类之一。这主要用于 Controller 层的单元测试。不仅仅是你的 Controller 类。这是为了测试 Controller 层。但是你必须模拟服务和其他层。因此它主要用于单元测试。

TestRestTemplate 再次成为 spring 测试的一部分,如文档所述,

Convenient alternative of {@link RestTemplate} that is suitable for integration tests.

这可用于测试您的 Rest 服务/端点。主要区别之一是您使用 MockMvc 进行单元测试,使用 TestRestTemplate 进行集成测试。换句话说,对于使用 MockMvc,您不需要正在运行的服务器实例,但对于 TestRestTemplate 则需要。

RestAssured 是一个完全不同的框架。这与 Spring 无关。这是一个库,它提供了多种方法来测试具有流畅的 BDD 风格界面的任何 REST 服务。

关于java - MockMvc、RestAssured 和 TestRestTemplate 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52051570/

相关文章:

java - Assert 语句导致 JUnit 测试停止

java - 带有文件输出的 JOptionPane

java - POI - ZIP 条目大小太大

javascript - 如何使用 jquery/javascript、Spring 按 id 删除?

java - 如何替换Java中xml模板中的第n次出现?

java - 在 Java 中解析 INI 文件的最简单方法是什么?

java - Spring Boot @RestController没有响应

java - 为什么我无法禁用 Spring Boot 自动生成的密码和用户?

java - REST 确保查询参数的多个值不起作用

java - 使用 REST assured 进行 JSON 验证