'JUnit CRUD: Why assuming that you use findById instead of existsById?
I took the following code from https://codefiction.net/unit-testing-crud-endpoints-of-a-spring-boot-java-web-service-api
@RunWith(MockitoJUnitRunner.class)
public class DeleteUserServiceTest {
@Mock
private UserRepository userRepository;
@InjectMocks
private DeleteUserService deleteUserService;
@Test
public void whenGivenId_shouldDeleteUser_ifFound(){
User user = new User();
user.setName("Test Name");
user.setId(1L);
when(userRepository.findById(user.getId())).thenReturn(Optional.of(user));
deleteUserService.deleteUser(user.getId());
verify(userRepository).deleteById(user.getId());
}
}
In deleteUserService.deleteUser to test if a user exists, we could have also used existsById instead of findById. In this case, the unit test would fail.
I am new to unit testing, but this does not seem right. But also I cannot find a good solution: I mean, when I write the test I should mock all the possible methods that could test the existence? It seems too heavy.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
