此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0! |
配置 MockMvcTester
MockMvcTester
可以通过以下两种方式之一进行设置。一种是直接指向
控制器,并以编程方式配置 Spring MVC 基础设施。
第二个是指向带有 Spring MVC 和控制器的 Spring 配置
基础设施。
有关这两种模式的比较,请检查 Setup Options。 |
设置MockMvcTester
要测试特定控制器,请使用以下内容:
-
Java
-
Kotlin
public class AccountControllerStandaloneTests {
private final MockMvcTester mockMvc = MockMvcTester.of(new AccountController());
// ...
}
class AccountControllerStandaloneTests {
val mockMvc = MockMvcTester.of(AccountController())
// ...
}
设置MockMvcTester
通过 Spring 配置,使用以下内容:
-
Java
-
Kotlin
@SpringJUnitWebConfig(ApplicationWebConfiguration.class)
class AccountControllerIntegrationTests {
private final MockMvcTester mockMvc;
AccountControllerIntegrationTests(@Autowired WebApplicationContext wac) {
this.mockMvc = MockMvcTester.from(wac);
}
// ...
}
@SpringJUnitWebConfig(ApplicationWebConfiguration::class)
class AccountControllerIntegrationTests(@Autowired wac: WebApplicationContext) {
private val mockMvc = MockMvcTester.from(wac)
// ...
}
MockMvcTester
可以转换 JSON 响应正文或 JSONPath 表达式的结果,
添加到您的域对象之一,只要HttpMessageConverter
已注册。
如果您使用 Jackson 将内容序列化为 JSON,以下示例将 转炉:
-
Java
-
Kotlin
@SpringJUnitWebConfig(ApplicationWebConfiguration.class)
class AccountControllerIntegrationTests {
private final MockMvcTester mockMvc;
AccountControllerIntegrationTests(@Autowired WebApplicationContext wac) {
this.mockMvc = MockMvcTester.from(wac).withHttpMessageConverters(
List.of(wac.getBean(AbstractJackson2HttpMessageConverter.class)));
}
// ...
}
@SpringJUnitWebConfig(ApplicationWebConfiguration::class)
class AccountControllerIntegrationTests(@Autowired wac: WebApplicationContext) {
private val mockMvc = MockMvcTester.from(wac).withHttpMessageConverters(
listOf(wac.getBean(AbstractJackson2HttpMessageConverter::class.java)))
// ...
}
以上假设转换器已注册为 Bean。 |
最后,如果你有一个MockMvc
实例,您可以创建一个MockMvcTester
由
提供MockMvc
实例以使用create
Factory 方法。