跳到主要内容
版本:7.0.3

配置MockMvcTester

Hunyuan 7b 中英对照 Configuring MockMvcTester

MockMvc Tester可以通过两种方式之一进行配置。一种是指定要测试的控制器,并以编程方式配置Spring MVC基础设施;另一种是指定包含Spring MVC及其控制器基础设施的Spring配置文件。

提示

要比较这两种模式,请查看设置选项

要为测试特定的控制器设置MockMvc Tester,请使用以下方法:

public class AccountControllerStandaloneTests {

private final MockMvcTester mockMvc = MockMvcTester.of(new AccountController());

// ...

}

要通过Spring配置来设置MockMvcTester,请使用以下方法:

@SpringJUnitWebConfig(ApplicationWebConfiguration.class)
class AccountControllerIntegrationTests {

private final MockMvcTester mockMvc;

AccountControllerIntegrationTests(@Autowired WebApplicationContext wac) {
this.mockMvc = MockMvcTester.from(wac);
}

// ...

}

MockMvcTester 可以将 JSON 响应体或 JSONPath 表达式的结果转换为你定义的领域对象(domain object),前提是相关嘅 HttpMessageConverter 已经注册。

如果你使用Jackson将内容序列化为JSON,以下示例会注册该转换器:

@SpringJUnitWebConfig(ApplicationWebConfiguration.class)
class AccountControllerIntegrationTests {

private final MockMvcTester mockMvc;

AccountControllerIntegrationTests(@Autowired WebApplicationContext wac) {
this.mockMvc = MockMvcTester.from(wac).withHttpMessageConverters(
List.of(wac.getBean(AbstractJacksonHttpMessageConverter.class)));
}

// ...

}
备注

上述内容假设转换器已经被注册为Bean。

最后,如果你手头有一个MockMvc实例,你可以通过提供该MockMvc实例来使用create工厂方法创建一个MockMvcTester