据我所知,MockMvc 只是在测试 Controller,并模拟 Service 层。
同时 RestAssured 和 TestRestTemplate 正在测试我们 API 的运行实例。
这样对吗? RestAssured 和 Spring Boot 的 TestRestTemplate 有什么区别?
最佳答案
MockMvc
是spring-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/