Załóżmy, że mam następujący obiekt usługaTestowanie zachowanie metody void
public class UserService {
@Autowired
private UserDao dao;
public void addUser(String username, String password) {
if (username.length() < 8) {
username = username + "random" ; // add some random string
}
User user = new User(username, password);
dao.save(user);
}
}
Chcę przetestować zachowanie metody „adduser”, gdy długość nazwy użytkownika jest mniejsza 8 i gdy nazwa użytkownika jest więcej niż 8 char . W jaki sposób podejście w jednostce testowej UserService.addUser (...) i zweryfikować? Zdaję sobie sprawę z używania assert(), ale wartość "password" nie jest dostępna poza metodą addUser (...).
Używam JUnit i Mockito.
Myślałem o tym, ale faktyczny przypadek składa się już z kilku metod. To, co tu napisałem, to bardziej uproszczona wersja faktycznego przypadku. –
Pomimo neg. głosowanie Nadal uważam, że ułatwi to testowanie logiki walidacji i modyfikacji nazwy użytkownika w oderwaniu (niezależnie od testowania, co zostanie przekazane do metody zapisu). Tym bardziej, jeśli ta logika ma inne zawiłości. Sądzę też, że nie będziesz musiał używać żadnego szyderstwa do testowania tej logiki. – derdo