Zainspirowany tematem Odwrócona piramida testów postanowiłem sprawdzić to na własnym kodzie. No i w sumie przy pierwszym lepszym teście mam pewne wątpliwości, funkcjonalność jaką testuje to tworzenie użytkownika w systemie. Przetestować chcę to integracyjnie, czyli zacznam od strzału HTTP, kończę na odczytaniu wartości z bazy którą odpalam przez TestContainers. Co trzeba sprawdzić przy happy path?
- kod odpowiedzi HTTP, czy jest 201
assertEquals(HttpStatus.CREATED, response.status)
- czy w bazie mogę znaleźć użytkownika o id jakie dostałem w odpowiedzi
assertNotNull(userRepository.findById(response.body.userId, User.class))
- czy dane przekazane w requeście zostały poprawnie zmapowane (
savedUser
to encja wyciągnięta z repozytorium po zapisie)
assertEquals(request.name, savedUser.name)
assertEquals(request.email, savedUser.email)
- no i czy hasło zostało zakodowane
assertTrue(passwordEncoder.matches(user.password, savedUser.password))
No i proste pytanie - ile testów powinno powstać? 1, 2, 3, 4?