Grundlegender Fehler beim Port der Spring Boot-Anwendungstestvariable
Posted: 08 Jan 2025, 10:08
Ich habe ein Problem mit meinem Spring Boot-Anwendungstest. Der Test schlägt mit der Fehlermeldung fehl: „Symbol nicht gefunden, Symbol: Variabler Port.“ Ich habe den Port bereits mit WebEnvironment.RANDOM_PORT definiert, aber es scheint, als ob etwas fehlt oder nicht richtig konfiguriert ist. Kann jemand vorschlagen, was dieses Problem verursachen könnte?
Das gleiche Problem führte auch dazu, dass meine andere Methode nicht funktionierte:
Ich habe versucht, die Portabhängigkeit vollständig zu beseitigen, um sicherzustellen, dass es ohne Port funktioniert, aber es stellte sich heraus, dass der Port tatsächlich notwendig ist.
Code: Select all
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.ANY)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class PersonEntityApplicationTest {
@Autowired
private TestRestTemplate restTemplate;
@Autowired
private PersonEntityRepository personRepository;
@Test
@Order(1)
public void testGetPersonEntityById() {
PersonEntity person = PersonEntity.builder()
.firstname("John")
.lastname("Doe")
.age(29)
.build();
person = personRepository.save(person);
ResponseEntity response = restTemplate.getForEntity(
"http://localhost:" + port + "/persons/" + person.getId(), PersonEntity.class);
assertEquals(HttpStatus.OK, response.getStatusCode());
assertNotNull(response.getBody());
assertEquals("John", response.getBody().getFirstname());
assertEquals("Doe", response.getBody().getLastname());
assertEquals(29, response.getBody().getAge());
}
...
Code: Select all
@Test
@Order(2)
public void testUpdatePersonEntity() {
PersonEntity person = PersonEntity.builder()
.firstname("Joe")
.lastname("Doe")
.age(29)
.build();
personRepository.save(person);
PersonEntity updatedPersonEntity = PersonEntity.builder()
.firstname("John")
.lastname("Doe")
.age(29)
.build();
String url = "http://localhost:" + port + "/persons/update/1";
ResponseEntity response = restTemplate.exchange(url,
HttpMethod.PUT,
new HttpEntity(updatedPersonEntity),
PersonEntity.class
);
assertEquals(HttpStatus.OK, response.getStatusCode());
PersonEntity responseBody = response.getBody();
assertThat(responseBody).isNotNull();
assertThat(responseBody.getLastname())
.isEqualTo(updatedPersonEntity.getLastname());
}