Для тестирования REST на стороне клиента Spring Test Framework предоставляет следующее:
<code>/**
* <strong>Main entry point for client-side REST testing</strong>. Used for tests
* that involve direct or indirect use of the {@link RestTemplate}. Provides a
* way to set up expected requests that will be performed through the
* {@code RestTemplate} as well as mock responses to send back thus removing the
* need for an actual server.
*
* <p>Below is an example that assumes static imports from
* {@code MockRestRequestMatchers}, {@code MockRestResponseCreators},
* and {@code ExpectedCount}:
*
* <pre class="code">
* RestTemplate restTemplate = new RestTemplate()
* MockRestServiceServer server = MockRestServiceServer.bindTo(restTemplate).build();
*
* server.expect(manyTimes(), requestTo("/hotels/42")).andExpect(method(HttpMethod.GET))
* .andRespond(withSuccess("{ \"id\" : \"42\", \"name\" : \"Holiday Inn\"}", MediaType.APPLICATION_JSON));
*
* Hotel hotel = restTemplate.getForObject("/hotels/{id}", Hotel.class, 42);
* // Use the hotel instance...
*
* // Verify all expectations met
* server.verify();
*
*
*
Обратите внимание, что в качестве альтернативы вышеупомянутому вы также можете установить
* {@link MockMvcClientHttpRequestFactory} на {@code RestTemplate}, который
* позволяет выполнять запросы к экземпляру
* {@link org.springframework.test.web.servlet.MockMvc MockMvc}.
*
* @author Крейг Уоллс
* @author Россен Стоянчев
* @ с 3.2
* /
@SuppressWarnings ( "устаревание")
открытый финальный класс MockRestServiceServer {
Http.outboundGateway()
можно настроить с помощью RestTemplate
, и этот должен использоваться для этого MockRestServiceServer
. Примерно так:
@ContextConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@DirtiesContext
public class OutboundResponseTypeTests {
@Autowired
private RestTemplate restTemplate;
private MockRestServiceServer mockServer;
@Before
public void setup() {
this.mockServer = MockRestServiceServer.createServer(this.restTemplate);
}
@Test
public void testDefaultResponseType() throws Exception {
this.mockServer.expect(requestTo("/testApps/outboundResponse"))
.andExpect(method(HttpMethod.POST))
.andRespond(withSuccess(HttpMethod.POST.name(), MediaType.TEXT_PLAIN));
...
this.mockServer.verify();
}
}
См. Док для получения дополнительной информации: https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#spring-mvc-test-client