Spre deosebire de clasa standard RestTemplate (care aruncă excepții dacă serverul returnează coduri de eroare HTTP 4xx sau 5xx), TestRestTemplate este special conceput pentru testare: este tolerant la erori și returnează întotdeauna un obiect ResponseEntity<T>.
Acest comportament permite asertarea directă a codurilor de eroare (de exemplu verificarea că o cerere fără credențiale returnează 401 UNAUTHORIZED sau că un parametru invalid returnează 400 BAD_REQUEST), având și suport nativ pentru autentificare Basic (withBasicAuth).
Exemplu: Verificarea răspunsului HTTP de eroare cu TestRestTemplate
package ro.dexblog.demo;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import static org.junit.jupiter.api.Assertions.assertEquals;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class SecureApiEndpointTest {
@Autowired
private TestRestTemplate restTemplate;
@Test
void shouldReturnForbiddenForAnonymousUsers() {
ResponseEntity response = restTemplate.getForEntity("/api/v1/admin/dashboard", String.class);
assertEquals(HttpStatus.FORBIDDEN, response.getStatusCode());
}
}
Întrebări & Exemple de Cod:
Clasa TestRestTemplate în Spring Boot TestAi o nelămurire despre utilizarea comenzii
Clasa TestRestTemplate în Spring Boot Testsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.