2011-10-14 17 views

risposta

24

"Quando" ti dà la possibilità di avere impostazioni diverse per lo stesso oggetto deriso, a seconda di qualsiasi cosa tu debba decidere. Diciamo che vuoi testare un fornitore di formati che hai scritto. Se il programma (= test) viene eseguito la mattina, una determinata chiamata di funzione dovrebbe restituire null; nel pomeriggio un certo valore. Quindi puoi usare "Quando" per scrivere quelle impostazioni condizionali.

var mockedService = new Mock<IFormatProvider>(); 

mockedService.When(() => DateTime.Now.Hour < 12).Setup(x => x.GetFormat(typeof(string))).Returns(null); 
mockedService.When(() => DateTime.Now.Hour >= 12).Setup(x => x.GetFormat(typeof(string))).Returns(42); 
2

Con questo metodo è possibile configurare il comportamento dell'oggetto mocked quando la condizione impostata in Mock<T>.When(...) restituisce true. Ciò consente al tuo oggetto deriso di reagire in modo diverso a seconda della condizione data.

Problemi correlati