Spring
MockRestServiceServer正是您想要的。
来自javadoc的简短描述:
客户端REST测试的主要入口点。用于涉及直接或间接(通过客户端代码)使用RestTemplate的测试。提供了一种对将通过RestTemplate执行的请求设置细粒度期望的方法,以及一种定义发送回响应的方法,从而消除了对实际运行的服务器的需求。
尝试像这样设置测试:
@WebAppConfiguration@ContextConfiguration(classes = {YourSpringConfig.class})@RunWith(SpringJUnit4ClassRunner.class)public class ExampleResourceTest { private MockMvc mockMvc; private MockRestServiceServer mockRestServiceServer; @Autowired private WebApplicationContext wac; @Autowired private RestOperations restOperations; @Before public void setUp() throws Exception { mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); mockRestServiceServer = MockRestServiceServer.createServer((RestTemplate) restOperations); } @Test public void testMyApiCall() throws Exception { // Following line verifies that our pre behind /api/my/endpoint made a REST PUT // with expected parameters to remote service successfully expectRestCallSuccess(); this.mockMvc.perform(MockMvcRequestBuilders.get("/api/my/endpoint")) .andExpect(status().isOk()); } private void expectRestCallSuccess() { mockRestServiceServer.expect( requestTo("http://remote.rest.service/api/resource")) .andExpect(method(PUT)) .andRespond(withSuccess("{"message": "hello"}", APPLICATION_JSON)); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)