Blog Stats
  • Posts - 171
  • Articles - 1
  • Comments - 197
  • Trackbacks - 5

 

Stub, Fake Object e Mock Object: quali differenze...

Volevo dedicare una parte della spiegazione sullo Unit Testing alla differenza tra Stub, Fake e Moke Object.

Cercando anche tra le varie risorse in rete, posso dire di non avere ancora chiaro al 100% la differenza tra i tre.

Diciamo che sono dei pattern che servono per creare componenti "finti" che sostituiscano in fase di unit testing i componenti che rappresentano le risorse esterne a cui il componente di test può accedere.

Lo Stub rappresenta l'implementazione minima attraverso l'implementazione di una interfaccia e dei metodi nel modo più semplice possibile.

Il Fake Object rappresenta una evoluzione dello Stub e ritorna dei valori predefiniti per ciascun metodo dell'interfaccia implementata.

Il Mock Object è una ulteriore evoluzione del Fake Object perchè permette il controllo dei metodi che il test può generare ed invocare sulle risorse esterne.

Ancora non sono convinto di queste definizioni, in particolare per quanto riguarda l'ultima...qualcuno può darmi qualche suggerimento ?


Feedback

# re: Stub, Fake Object e Mock Object: quali differenze...

Gravatar La domanda è molto interessante in quanto le differenze (soprattutto fra i primi due) sono tutt'altro che evidenti.

Anche lo Stub ritorna dei valori (hard-coded) e mi pare che l'unica differenza fra Stub e Fake stia proprio qui: lo Stub ritorna solamente dei valori hard-coded mentre nel Fake questi possono essere dinamici.

Il Mock è, come dici correttamente, un'evoluzione del Fake nella quale controlli anche lo stato del processo (non a caso si parla di interaction-based testing). 17/01/2005 06:19 | Pierre Greborio

Comments have been closed on this topic.
 

 

Copyright © Luca Mauri