spring - @AutoConfigureWebMvc和@AutoConfigureMockMvc有什么区别?

标签 spring spring-boot spring-boot-test

在那种情况下我应该使用每个?

最佳答案

@AutoConfigureWebMvc


如果您需要配置Web层以进行测试,而无需进行配置,请使用此选项
需要使用MockMvc


它启用与Web层有关的所有自动配置,并且仅启用Web层。这是整体自动配置的子集。

它包括以下自动配置(请参见spring.factories

# AutoConfigureWebMvc auto-configuration imports
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureWebMvc=\
org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration,\
org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,\
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,\
org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration,\
org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration,\
org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration,\
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration,\
org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration,\
org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,\
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration,\
org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration,\
org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration,\
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration


@AutoConfigureMockMvc


当您只想配置MockMvc时使用此选项


启用与MockMvc和仅MockMvc相关的所有自动配置。同样,这是整体自动配置的子集。

它包括以下自动配置(请参见spring.factories

# AutoConfigureMockMvc auto-configuration imports
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc=\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration,\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration,\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration,\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration


@WebMvcTest

包括@AutoConfigureWebMvc@AutoConfigureMockMvc,以及其他功能。

关于spring - @AutoConfigureWebMvc和@AutoConfigureMockMvc有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46343782/

相关文章:

java - 无法从 JSON 转换;意外字符 ('f'(代码 102)): Expected space separating root-level values at (String )"5f19a7e99933db43cb23e83d"

jquery - 在 spring 中上传文件并使用 ajax 捕获响应时出错

java - 使用 TestHazelcastInstance 测试 HazelcastClient

java - 我们应该在 Spring Boot 中为存储库层编写单元测试和集成测试吗?

spring - 如何进行 Spring Autowiring ?

java - 在 Spring Boot gradle 中配置嵌入式 tomcat 上下文 docBase 和路径

java - 创建@Service bean的对象,可能吗?

java - 如何在 springboot 2.x 中处理 @pathvariable 中的编码 url(包含特殊字符,如 %2F)?

java - 在 Employee 的保存时间时使用 orElseThrow 方法抛出 ConstraintViolationException

maven - 找不到 : Erroneous spring-boot-starter-test content? 的 SpringApplicationConfiguration