Supponiamo che io ho il seguente oggetto di servizioTest del comportamento del metodo di vuoto
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);
}
}
voglio testare il comportamento del metodo "addUser" quando la lunghezza nome utente è meno 8 e quando il nome utente è più di 8 caratteri . Come approccio in unit test UserService.addUser (...) e verificarlo? Sono a conoscenza dell'uso di assert(), ma il valore "password" non è disponibile al di fuori del metodo addUser (...).
Uso JUnit e Mockito.
Ho pensato a questo, ma il caso reale è già composto da diversi metodi. Quello che ho scritto qui è la versione più semplificata del caso reale. –
Nonostante il neg. voto Continuo a pensare che renderà le cose più semplici da testare la logica di validazione e modifica del nome utente in isolamento (separatamente dal test di ciò che viene passato nel metodo di salvataggio). Ancor di più, se quella logica ha altre complessità. E penso anche che non sarà necessario usare alcun tipo di derisione per testare quella logica. – derdo