3. Perchè? Se uno unit test è rossol’errore è sicuramentenell’unità sotto test
4. Definizioni State Based Testing: verifica che un unità funzioni correttamente verificandone lo stato dopo l’esecuzione Interaction Testing: verifica che l’unità sotto test effettui correttamente le chiamate verso gli altri oggetti con cui collabora
5. Cosa sono? Sono finti oggetti che ci aiutano in vari modi a testare le nostre unità. Si chiamano simpaticamente: Dummy, Fake, Stub, Spy, Mock = Test Doubles
6. Utili perchè? Ci permettono di: rimanere focalizzati sul metodo che stiamo disegnando scrivere unit test anche su oggetti che collaborano con altri scrivere test di interazione tra diversi oggetti posticipare l’implementazione di alcuni collaboratori
10. Le 3 fasi dell’apprendimento WTF !? **%*!! I got the power! Posso mockare il mondo! Lo zen e l’arte del Mockare quanto basta
11. Alcune (buone) regole Non verificare i dettagli della collaborazione Se puoi usa uno stub invece di un mock Non mockare grosse interfacce Mocka solo i tuoi diretti collaboratori Usa un solo mock per il test Non mockare i dati di ritorno
12. E i test di integrazione? I mock object permettono di scrivere test unitari, ma... ...anche i test di integrazione sono importanti.
Dummy: servono da parametro per i metodi ma non sono usatiFake: sono implementati ma bypassano il «giro vero» (ad esempio in-memory db)Stub: rispondono in modo predefinitoSpy: rispondono in modo predefinito e registrano le chiamateMock: rispondono in modo predefinito e registrano le chiamate e fanno fallire i test se le chiamate non sono state fatte come previsto