/ / Konwertuj ciągi sprawdzania poprawności modelu na tablicę obiektów - c #, asp.net-mvc, mbunit

Konwertuj łańcuchy sprawdzania poprawności nazwy modelu do tablicy obiektów - c #, asp.net-mvc, mbunit

Nadal nie jest wygodne ze wszystkimi wymienionymi artykułami. Próbuję to zrobić:

 Assert.IsTrue(actionResult.ViewData.ModelState.IsValid, null, Enumerable.ToArray<object>(actionResult.ViewData.ModelState as IEnumerable<object>));

Jest to asercja mbUnit z następującym podpisem.

public static void IsTrue(bool actualValue, string messageFormat, params object[] messageArgs);

Przyczyny trzeciego parametru (przetłumaczone na angielski)

System.ArgumentNullException: Wartość nie może mieć wartości NULL. Nazwa parametru: źródło w System.Linq.Enumerable.ToArray [TSource] (źródło IEnumerable`1) w Coin.UnitTests.AccountControllerTests.MyTest () w D: ... TestsMbUnitTestsControllerTests.cs: wiersz 85

w Gallio. Jak ty to robisz?

Przy okazji, czy ktoś wie jak zdobyć te wiadomości po angielsku? Vista jest po szwedzku.

Odpowiedzi:

2 dla odpowiedzi № 1

ModelState nie implementuje IEnumerable<T> więc obsada kończy się na zerowym i Enumerable.ToArray() nie lubi zer, stąd wyjątek.

Spróbuj czegoś takiego:

var errors = actionResult.ViewData.ModelState.Errors.Select(e => e.ErrorMessage).ToArray();
Assert.IsTrue(actionResult.ViewData.ModelState.IsValid, string.Join("n", errors));