• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Mocking
 

Mocking

on

  • 2,117 views

Presentation about mock objects

Presentation about mock objects

Statistics

Views

Total Views
2,117
Views on SlideShare
2,108
Embed Views
9

Actions

Likes
0
Downloads
11
Comments
0

3 Embeds 9

http://avventureweb.wordpress.com 4
http://www.linkedin.com 3
http://hi-tech.leonardo.it 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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

Mocking Mocking Presentation Transcript

  • mocking
    Emanuele DelBono
    emanuele@codiceplastico.com
    http://blog.codiceplastico.com
  • Agenda
  • Perchè?
    Se uno unit test è rossol’errore è sicuramentenell’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
    WTF !? **%*!!
    I got the power! Posso mockare il mondo!
    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/