Vorrei impostare un valore di ritornoCome cancellare le aspettative precedenti su un oggetto?
_stubRepository.Stub(Contains(null)).IgnoreArguments().Return(true);
ma poi in un test specifico, ignorare questa aspettativa per restituire false.
Qualcosa di simile:
_stubRepository.ClearExpectations(); //<- this does not exist, I'm just making something up
_stubRepository.Stub(Contains(null)).IgnoreArguments().Return(false);
Avviso, non voglio l'aspettativa per tornare falso in seconda convocazione, voglio ignorare la prima aspettativa.
Ciò contribuirebbe a semplificare notevolmente il mio scenario di test.
In Rhino Mock interno parlare usando Repeat. Qualsiasi crea un'aspettativa ripetibile, che supera le normali aspettative durante la riproduzione. Raccomando comunque di usare BackToRecord. –
Ah, ho capito tutto tranne la chiamata a Replay(). –
Questa è una cosa conosciuta solo da persone che usano RhinoMocks dalla versione 3.4 o precedente. RhinoMocks ha funzionato con Record-Replay, questo significa che un mock doveva essere impostato in modo replay in modo esplicito. Con 3.5, fortunatamente questo è andato, i mock sono sempre in modalità replay (almeno per il codice personalizzato). Fino a quando non lo rimandi alla modalità di registrazione - a parte le aspettative di cancellazione, non vedo alcun motivo per farlo. Volevo già scrivere una patch per queste due righe per reimpostare comodamente le aspettative. –