Все ще невдоволено з усіма переліченими там. Я намагаюся зробити це:
Assert.IsTrue(actionResult.ViewData.ModelState.IsValid, null, Enumerable.ToArray<object>(actionResult.ViewData.ModelState as IEnumerable<object>));
Це твердження mbUnit із наступним підписом.
public static void IsTrue(bool actualValue, string messageFormat, params object[] messageArgs);
Треті параметри причини (переклад на англійську)
Система.ArgumentNullException: Значення не може бути нульовим. Назва параметра: джерело у System.Linq.Enumerable.ToArray [TSource] (джерело IEnumerable`1) у Coin.UnitTests.AccountControllerTests.MyTest () у D: ... TestsMbUnitTestsControllerTests.cs: рядок 85
в Галліо. Як ви це робите?
До речі, хтось знає, як отримати ці повідомлення англійською мовою? Vista - шведською мовою.
Відповіді:
2 для відповіді № 1ModelState
не реалізується IEnumerable<T>
так актор закінчується нульовим і Enumerable.ToArray()
не любить нулі, отже, виняток.
Спробуйте щось на зразок цього:
var errors = actionResult.ViewData.ModelState.Errors.Select(e => e.ErrorMessage).ToArray();
Assert.IsTrue(actionResult.ViewData.ModelState.IsValid, string.Join("n", errors));