在尖峰期间,我创建了一个漂亮的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,然后我可以断言返回的内容是否正确?
答案 0 :(得分:3)
我的模拟背景不够完整。切换到使用基于http://offroadcoder.com/unit-testing-asp-net-html-helpers-with-simple-fakes/构建的假货,这一切都有效。
我仍然欢迎如何模仿而不是使用全套假货的答案。