Ancora a disagio con tutti gli enumerabili là fuori. Sto cercando di fare questo:
Assert.IsTrue(actionResult.ViewData.ModelState.IsValid, null, Enumerable.ToArray<object>(actionResult.ViewData.ModelState as IEnumerable<object>));
È un'asserzione mbUnit con la seguente firma.
public static void IsTrue(bool actualValue, string messageFormat, params object[] messageArgs);
Cause dei terzi parametri (tradotto in inglese)
Sistema.ArgumentNullException: il valore non può essere nullo. Nome del parametro: sorgente at System.Linq.Enumerable.ToArray [TSource] (sorgente IEnumerable`1) at Coin.UnitTests.AccountControllerTests.MyTest () in D: ... TestsMbUnitTestsControllerTests.cs: riga 85
a Gallio. Come si fa?
A proposito, qualcuno sa come ottenere questi messaggi in inglese? Vista è in svedese.
risposte:
2 per risposta № 1ModelState
non implementa IEnumerable<T>
quindi il cast finisce per essere nullo e Enumerable.ToArray()
non gli piacciono i null, quindi l'eccezione.
Prova qualcosa del genere:
var errors = actionResult.ViewData.ModelState.Errors.Select(e => e.ErrorMessage).ToArray();
Assert.IsTrue(actionResult.ViewData.ModelState.IsValid, string.Join("n", errors));