MockMvc,RestAssured和TestRestTemplate之间有什么区别?

据我所知,MockMvc只是在测试控制器,并模拟服务层。

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

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


答案 1

如前所述,MockMvc用于模拟服务层。它在代码中很有用。unit-testing

而 RestAssured 和 TestRestTemplate 都用于端到端 API 测试。integration-testing

此外,RestAssured和Spring Boot的TestRestTemplate之间没有太大区别。您可以将 RestAssured 用于 Spring-Boot Application,也可以继续使用 TestRestTemplate,这是一个 Spring 库。


答案 2

MockMvc是 中的类之一。这主要用于控制器层的单元测试。不仅仅是您的控制器类。这是为了设置控制器层。但你必须模拟服务和其他层。因此,它主要用于单元测试。spring-test

TestRestTemplate再次是弹簧测试的一部分,正如文档所说,

{@link RestTemplate} 的便捷替代方案,适用于集成测试。

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

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


推荐