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 {@Autowiredprivate GithubClient githubClient;@Autowiredprivate MockRestServiceServer server;@Testvoid 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.