/ / Перетворити рядки перевірки modelstate в масив об'єктів - c #, asp.net-mvc, mbunit

Перетворення рядків валідації modelstate до масиву об'єктів - c #, asp.net-mvc, mbunit

Все ще невдоволено з усіма переліченими там. Я намагаюся зробити це:

 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 для відповіді № 1

ModelState не реалізується 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));