0 Tage Serie
java / intermediate
Snippet

Unit-Testing ausgehender API-Clients mit MockRestServiceServer

@RestClientTest fokussiert Tests ausschließlich auf RestTemplate- oder RestClient-Komponenten und mockt externe HTTP-Endpunkte über MockRestServiceServer. Damit werden URL-Konstruktion, Header-Übergabe und JSON-Deserialisierung ohne reale Netzwerkverbindung validiert.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@RestClientTest(GithubClient.class)
class GithubClientTest {
@Autowired
private GithubClient githubClient;
@Autowired
private MockRestServiceServer server;
@Test
void fetchesUserRepositories() {
this.server.expect(requestTo("/users/octocat/repos"))
.andRespond(withSuccess("[{\"name\":\"repo1\"}]", MediaType.APPLICATION_JSON));
List<RepositoryDto> repos = githubClient.getRepositories("octocat");
assertThat(repos).hasSize(1);
}
}
spring
Erklärung
1
@RestClientTest(GithubClient.class)
Bereitet einen isolierten Test-Slice speziell für die angegebene REST-Client-Bean vor.
2
this.server.expect(requestTo("/users/octocat/repos"))
Definiert die Erwartung an den ausgehenden HTTP-Request-Pfad.
3
.andRespond(withSuccess(...))
Simuliert eine HTTP-200-Antwort mit Nutzdaten und passendem Media-Type-Header.