在一次高峰期间,我为我的视图创建了一个漂亮的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,并且我可以断言返回的内容是正确的?
HtmlHelper.EditorFor()
扩展方法进行单元测试,而不会抛出一些毫无帮助的异常(如NullReferenceExceptions
)! - QuantumHive