Ich habe mein Spring-Boot-Projekt von 1.3.x auf 1.5.2 aktualisiert. Das Test-Framework hat sich "geändert" und ich versuche meinen Code zu migrieren. Der Antwortstatuscode von der RestTemplate sollte 401 sein, aber wenn ich den Code in die neue "Struktur" ändere, bekomme ich eine 404, nicht gefunden. Irgendwelche Ideen, was fehlt?Spring Boot Test, migrieren von 1.3 auf 1.5
Alter Code:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ApiAuthServerApplication.class)
@WebAppConfiguration
@IntegrationTest("{server.port:0, server.address:localhost}")
public class ApiEndpointTests {
@Value("${local.server.port}")
private int port;
private RestTemplate template = new TestRestTemplate();
@Test
public void clientsEndpointProtected() {
ResponseEntity<String> response = template.getForEntity("http://localhost:"
+ port + "/uaa/api/v1/oauth/clients", String.class);
assertEquals(HttpStatus.UNAUTHORIZED, response.getStatusCode());
}
}
Der neue Code Ich habe versucht:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ApiAuthServerApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ApiEndpointTests {
@LocalServerPort
private int port;
private TestRestTemplate template = new TestRestTemplate();
@Test
public void clientsEndpointProtected() {
ResponseEntity<String> response = template.getForEntity("http://localhost:"
+ port + "/uaa/api/v1/oauth/clients", String.class);
assertEquals(HttpStatus.UNAUTHORIZED, response.getStatusCode());
}
}
Auch versucht zu @Autowire
die TestRestTemplate und auslassen Hostnamen und Port in den Anforderungen.
sollten Sie nur brauchen, um '@ Autowire' die' TestRestTemplate' stattdessen eine neue Instanz erstellen, sollten Frühlings-Boot dann richtig die URL zu beheben und Sie nennen könnte '/ lf/api/v1/oauth/Kunden'. –
Ich habe dies zuvor versucht, und ich bekomme das gleiche Ergebnis – Filip