Как выполнить модульное тестирование метода расширения, который вызывает html.EditorFor - PullRequest
3 голосов
/ 31 января 2012

Во время всплеска я создал отличный метод расширения html-помощника для использования в моих представлениях, он работал хорошо. Это облегчит мои взгляды.

Теперь мне нужно выяснить, как его тестировать. Вот суть того, что я пытаюсь сделать:

public static MvcHtmlString EditorOrDisplayForBasedOnConvolutedBusinessLogic<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
{
    if (ConvolutedBusinessLogic())
    {
        return html.EditorFor(expression);
    }
    else
    {
        return html.DisplayFor(expression);
    }
}

И EditorFor, и DisplayFor сами являются методами расширения. Как в моих модульных тестах я могу утверждать, что на основании входных данных для моего ConvolutedBusinessLogic, что EditorFor или DisplayFor вызываются соответствующим образом? В противном случае, как я могу настроить правильные заглушки / подделки / макеты, чтобы при вызове EditorFor или DisplayFor не выдавалось исключение NullReferenceException, а затем я мог утверждать, что возвращаемое содержимое является правильным?

1 Ответ

3 голосов
/ 01 февраля 2012

Мой смоделированный контекст был недостаточно полным.Переключился на использование подделок, созданных на основе http://offroadcoder.com/unit-testing-asp-net-html-helpers-with-simple-fakes/, и все это заработало.

Я бы все равно приветствовал ответ о том, как его подделать, вместо использования полного набора подделок.

...