仍然不满意所有的可用数据。我正在尝试这样做:
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);
第三个参数导致(翻译成英文)
System.ArgumentNullException:值不能为null。 参数名称:source 在System.Linq.Enumerable.ToArray [TSource](IEnumerable`1 source) 在Co中的Coin.UnitTests.AccountControllerTests.MyTest():... \ Tests \ MbUnitTests \ ControllerTests.cs:第85行
答案 0 :(得分:2)
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));