si dovrebbe usare una simulazione quando si verifica che qualcosa sia accaduto sull'oggetto, come è stato chiamato un metodo. Dovresti usare uno stub quando vuoi che l'oggetto sia coinvolto nel test per restituire un valore ma non è ciò che stai testando. Uno stub che non ha un'aspettativa soddisfatta non può mai fallire un test.
Penso che la regola generale dovrebbe essere che si dovrebbe sempre avere un solo oggetto fittizio in un test, ma possono avere più stub che forniscono informazioni all'oggetto simulato. Credo che più di un mock in un test sia un odore di codice.
Sebbene non sia un esempio rinoceronte Martin Fowler has a description of the difference
anche this question potrebbe essere utile come potrebbe this one
fonte
2010-03-29 08:21:47