@SpringBootTest
针对Spring Boot
应用的测试支持(1.4.0版本加入),当webEnvironment
为MOCK
时,默认可以注入MockMvc
(比如借助@AutoConfigurationMockMvc
),当webEnvironment
为RANDOM_PORT
和DEFINED_PORT
时,默认可以注入TestRestTemplate或WebTestClient。
value或properties
用来定义属性,key=value
形式,例如:
1 |
|
或
1 |
|
classes
用来指定Configuration类用于加载ApplicationContext,作用类似于@ContextConfiguration
例如:
1 |
|
webEnvironment
MOCK
利用仿真Web容器,不会启动真正的Web容器,默认值。
RANDOM_PORT
随机端口启动嵌入式Web容器
DEFINED_PORT
指定的端口启动嵌入式Web容器
NONE
样例
TestRestTemplate
1 |
|
WebTestClient
1 |
|
@AutoConfigureMockMvc
开启MockMvc
自动配置,默认可以注入MockMvc
,可以配合@SpringBootTest使用。
会启动完整Spring容器,用于集成测试。
样例
1 |
|
@WebMvcTest
专门针对Spring MVC
的单元测试
(参数传入待测试的Controller
),不会加载整个Spring容器,仅加载指定bean以及web层相关组件,@Component
,@Service
和@Repository
等都不会加载,默认会注入MockMvc
,如果Controller依赖其他比如@Service,则会报错(找不到相应bean),通过Mock
或Import相应的bean来解决。结合@ContextConfiguration实例化上下文。
样例
1 |
|
@WebFluxTest
跟@WebMvcTest类似
@AutoConfigureWebTestClient
@AutoConfigureWebFlux
@SpringApplicationConfiguration
已被废除
@WebIntegrationTest
已被废除