mocking

Post on 15-Jan-2015

1.414 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentation about mock objects

TRANSCRIPT

mocking

Emanuele DelBono emanuele@codiceplastico.comhttp://blog.codiceplastico.com

Agenda

Perchè?

Se uno unit test è rosso l’errore è sicuramente nell’unità sotto test

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

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

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

Esempio

(WheatherStatistics)

Ma hai presente quanto codice hai scritto?

• Ci sono alcuni framework che aiutano:– RhinoMocks– Moq– TypeMock– Nmock– Nmock2– .NET Mock

Ri-Esempio

(WheatherStatistics)

Le 3 fasi dell’apprendimento

1. WTF !? **%*!!2. I got the power! Posso mockare il mondo!3. Lo zen e l’arte del Mockare quanto basta

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

E i test di integrazione?

I mock object permettono di scrivere test unitari, ma...

...anche i test di integrazione sono importanti.

Grazie

• Riferimenti:– Growing object oriented software – Freeman,

Pryce – Addison Wesley– http://xunitpatterns.com/– http://www.mockobjects.com/

top related