――Il existe de nombreux articles merveilleux, veuillez donc les consulter. - https://qiita.com/kazuki43zoo/items/fa9fea1c813f76080fe7 - https://qiita.com/yoshidasts/items/fd4e1f4434e3b6f40880
Je vais laisser le code ici à titre d'exemple.
Il est possible de définir l'URL, le contenu de la requête, les en-têtes et les méthodes qui doivent être appelés en utilisant MockRestServiceServer.
Si l'appel n'est pas effectué correctement, vous obtiendrez java.lang.AssertionError.
Il peut être créé avec MockRestServiceServer.createServer, et le contenu de la requête, les en-têtes, etc. peuvent être définis en détail en utilisant ʻandExpect. Tout le contenu de ʻandExpect défini ici est celui de ʻorg.springframework.test.web.client.match.MockRestRequestMatchers`.
static import
example.java
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.*;
import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess;
GET
example.java
@Test
public void GetExample() {
//Réponse retournée
String jsonResponseBody = "{\"id\": 99999,\"name\": \"exampleUser\"}";
//Résultat prospectif
User expectUser = new User() {{
setId(99999);
setName("exampleUser");
}};
//URL à appeler attendue
String callEndpoint = "https://get-end-point-url";
// create MockRestServiceServer
MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate);
mockServer
.expect(requestTo(callEndpoint))
.andExpect(method(HttpMethod.GET))
.andRespond(withSuccess(jsonResponseBody, MediaType.APPLICATION_JSON_UTF8));
//Prêt à appeler
URI url = UriComponentsBuilder.fromHttpUrl(callEndpoint).build().toUri();
HttpHeaders headers = new HttpHeaders();
//En fait appelé avec restTemplate
ResponseEntity<User> responseEntity = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity(null, headers), User.class);
User responseUser = responseEntity.getBody();
assertThat(responseUser.getId(), is(expectUser.getId()));
assertThat(responseUser.getName(), is(expectUser.getName()));
}
POST
example.java
@Test
public void PostExample() {
//Réponse retournée
String jsonResponseBody = "{\"id\": 99999}";
//Corps de demande attendu
String jsonRequestBody = "{\"name\":\"example man\",\"email\":\"[email protected]\",\"gender\":1}";
//Résultat prospectif
User expectUser = new User() {{
setId(99999);
}};
//URL à appeler
String callEndpoint = "https://post-end-point-url";
// create MockRestServiceServer
MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate);
mockServer
.expect(requestTo(callEndpoint))
.andExpect(method(HttpMethod.POST))
//Vérification du contenu de l'en-tête de la demande
.andExpect(content().string(jsonRequestBody))
.andRespond(withSuccess(jsonResponseBody, MediaType.APPLICATION_JSON_UTF8));
//Prêt à appeler
URI url = UriComponentsBuilder.fromHttpUrl(callEndpoint).build().toUri();
HttpHeaders headers = new HttpHeaders();
// RequestBody
ExamplePostRequest exampleRequest = new ExamplePostRequest() {{
setName("example man");
setEmail("[email protected]");
setGender(MALE);
}};
ResponseEntity<User> responseEntity = restTemplate.exchange(url, HttpMethod.POST, new HttpEntity(exampleRequest, headers), User.class);
User responseUser = responseEntity.getBody();
assertThat(responseUser.getId(), is(expectUser.getId()));
}
PUT
example.java
@Test
public void PutExample(){
//Réponse retournée
String jsonResponseBody = "";
//Corps de demande attendu
String jsonRequestBody = "{\"name\":\"example man\",\"email\":\"[email protected]\",\"gender\":1}";
//URL à appeler
String callEndpoint = "https://put-end-point-url";
//entête
HttpHeaders headers = new HttpHeaders();
String exampleToken = String.format("Bearer %s", "EXAMPLE_BEARER_TOKEN");
headers.add("Authorization", exampleToken);
MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate);
mockServer
.expect(requestTo(callEndpoint))
.andExpect(method(HttpMethod.POST))
//Vérification du contenu de l'en-tête de la demande
.andExpect(header("Authorization", exampleToken))
//Vérification du contenu du corps de la demande
.andExpect(content().string(jsonRequestBody))
.andRespond(withSuccess(jsonResponseBody, MediaType.APPLICATION_JSON_UTF8));
URI url = UriComponentsBuilder.fromHttpUrl(callEndpoint).build().toUri();
// RequestBody
ExamplePostRequest exampleRequest = new ExamplePostRequest() {{
setName("example man");
setEmail("[email protected]");
setGender(MALE);
}};
//Si headers ou exampleRequest est retourné à null, il n'est pas appelé correctement, donc java.lang.AssertionError
restTemplate.exchange(url, HttpMethod.POST, new HttpEntity(exampleRequest, headers), User.class);
}
Recommended Posts