@AutoConfigureWebMvc和@AutoConfigureMockMvc之间的区别是什么?

时间:2017-09-21 12:19:59

标签: spring spring-boot spring-boot-test

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

1 个答案:

答案 0 :(得分:11)

<强> @AutoConfigureWebMvc

  

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

它启用与网络层相关的所有自动配置,并启用网络层。这是整体自动配置的一个子集。

它包括以下自动配置(请参阅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以及其他功能。