如何在测试 spring 可以签约 Web 服务时在放心模拟 mvc 中设置响应日期格式?
How to set response date format in rest assured mock mvc while testing spring could contract for a web service?
我正在使用 spring 云合同生成的测试来测试 Web 服务响应。
该服务过去使用 return 日期作为时间戳,现在使用更新的 Spring 版本 (2.0.5) 日期 returned in the "2018-11-30T21:16:18.220+0000 “ 格式。合同测试仍在通过,没有任何变化。我了解到这是因为 Spring 可以合同使用 RestAssuredMockMvc,它不知道 springs 应用程序配置。我如何更改合同中的配置以确保合同始终以与服务正确return编辑的格式相同的格式检查日期?
将缺少的配置添加到 mockmvc 放心设置或使用显式测试生成模式并设置真实的 spring 启动上下文
对于 Spring 启动应用程序,针对 spring 应用程序设置执行 RestAssured
的简单方法是:
@RunWith(SpringRunner.class)
@WebMvcTest
// or @SpringBootTest
public abstract class BaseContractTest {
@Autowired
protected MockMvc mockMvc;
@Before
public void setup() {
RestAssuredMockMvc.mockMvc(mockMvc);
}
}
带有@WebTestClient 的版本运行速度更快但需要模拟服务,带有@SpringBootTest 的版本运行速度较慢但可以利用整个应用程序。
在之前的回答中提出 RestAssuredMockMvc.webAppContextSetup()
与带有@SpringBootTest 的版本非常相似。第二个命题 RestAssuredMockMvc.standaloneSetup()
需要复杂的配置,不同于 Spring 应用程序配置。
因此 RestAssuredMockMvc.standaloneSetup()
容易出错,而且比 @WebMvcTest
更糟。
RestAssuredMockMvc.webAppContextSetup()
可以
尝试this。
使用 RestAssuredMockMvc.standaloneSetup
设置对象映射器
RestAssuredMockMvc.standaloneSetup(
MockMvcBuilders
.standaloneSetup(yourcontroller).setMessageConverters(mappingJackson2HttpMessageConverter)
);
我正在使用 spring 云合同生成的测试来测试 Web 服务响应。 该服务过去使用 return 日期作为时间戳,现在使用更新的 Spring 版本 (2.0.5) 日期 returned in the "2018-11-30T21:16:18.220+0000 “ 格式。合同测试仍在通过,没有任何变化。我了解到这是因为 Spring 可以合同使用 RestAssuredMockMvc,它不知道 springs 应用程序配置。我如何更改合同中的配置以确保合同始终以与服务正确return编辑的格式相同的格式检查日期?
将缺少的配置添加到 mockmvc 放心设置或使用显式测试生成模式并设置真实的 spring 启动上下文
对于 Spring 启动应用程序,针对 spring 应用程序设置执行 RestAssured
的简单方法是:
@RunWith(SpringRunner.class)
@WebMvcTest
// or @SpringBootTest
public abstract class BaseContractTest {
@Autowired
protected MockMvc mockMvc;
@Before
public void setup() {
RestAssuredMockMvc.mockMvc(mockMvc);
}
}
带有@WebTestClient 的版本运行速度更快但需要模拟服务,带有@SpringBootTest 的版本运行速度较慢但可以利用整个应用程序。
在之前的回答中提出 RestAssuredMockMvc.webAppContextSetup()
与带有@SpringBootTest 的版本非常相似。第二个命题 RestAssuredMockMvc.standaloneSetup()
需要复杂的配置,不同于 Spring 应用程序配置。
因此 RestAssuredMockMvc.standaloneSetup()
容易出错,而且比 @WebMvcTest
更糟。
RestAssuredMockMvc.webAppContextSetup()
可以
尝试this。
使用 RestAssuredMockMvc.standaloneSetup
设置对象映射器RestAssuredMockMvc.standaloneSetup(
MockMvcBuilders
.standaloneSetup(yourcontroller).setMessageConverters(mappingJackson2HttpMessageConverter)
);