아래와 같이 삭제 기능을 테스트하기위한 통합을 작성했습니다.
@Test
void deleteUsersTest() {
Map<String, String> params = new HashMap<>();
params.put("id", "21");
this.template.delete("/v1/users/{id}", params);
:
}
내가 직면 한 문제는 void 함수이기 때문에 아래 함수가 내부적으로 호출되었는지 확인하고 싶습니다.
userRepository.deleteById(21)
단위 테스트에서 나는 보통 다음과 같은 것을 사용했습니다.
verify(userRepository, times(1)).deleteById((long) 21);
하지만 위는 통합 테스트에서 사용할 수없는 mockito 기반 기능입니다.
누군가 Spring Integration 테스트 에서이 기능을 확인하는 방법에 대해 나를 도울 수 있습니까?
Spring 5, Spring Boot 2.1을 사용하고 있습니다.
통합 테스트는 실제 데이터베이스에서 발생합니다. 을 호출하기 전에 엔티티가 데이터베이스에 delete
저장되고을 호출 한 후에 데이터베이스에 저장되지 않았 는지 확인 하십시오 delete
.
@BeforeEach
public void setDatabase() {
client1 = new Client();
client1.setName("Karl");
client2 = new Client();
client2.setName("Pauline");
testEntityManager.persist(client1);
testEntityManager.persist(client2);
testEntityManager.flush();
}
@Test
public void deleteTest() {
clientRepository.deleteById(client1.getId());
List<Client> clientListActual = clientRepository.findAll();
boolean clientExists = clientListActual.contains(client1);
assertFalse(clientExists);
assertEquals(1, clientListActual.size());
}