Posso essere mis-leggere il tuo intento, ma per quanto posso vedere non c'è bisogno di fare nulla per un modello al fine di verificare che l'eccezione è stata gettato.
Sembra di avere una classe con un metodo Foo che prende una stringa - consente di chiamare questa classe interna
public class InnerClass {
public virtual void Foo(string str) {
// do something with the string
}
}
e una classe che contiene un classe interna come una proprietà (someProperty) che ha un membro di Koko che prende una stringa Lista < > come parametro
public class OuterClass {
private readonly InnerClass someProperty;
public OuterClass(InnerClass someProperty) {
this.someProperty = someProperty;
}
public void Koko(List<string> list) {
foreach (var str in list) {
if (str != null)
someProperty.Foo(str);
else
throw new FormatException();
}
}
}
NOTA: non riesco a ottenere l'elenco <stringa?> per compilare - mi dice che il tipo sottostante (stringa) deve essere non annullabile. AFAIK, uno ha bisogno solo di rendere nullable i tipi di valori, i tipi di riferimento sono implicitamente annullabili.
Sembra che si voglia verificare che se si passa a un elenco di stringhe in cui uno di essi è nullo viene generata una FormatException.
Se è così, l'unico motivo per un MOQ è di liberarci dal preoccuparci della funzionalità di InnerClass. Foo è un metodo, quindi, a meno che non usiamo mock severi, possiamo semplicemente creare un mock di InnerClass senza altre impostazioni.
C'è un attributo [ExpectedException] con il quale possiamo taggare il nostro test per verificare che l'eccezione sia stata generata.
Questo test verrà superato se viene emessa una FormatException e non riesce se non lo è.
Mostra il tuo lavoro .. Le persone non possono leggere la tua mente. Per favore leggi [FAQ] e [ask] anche .. –