3
在尖峯期間,我創建了一個漂亮的html助手擴展方法用於我的視圖,它運行良好。這將使我的觀點更容易維護。如何以單元測試調用html.EditorFor的擴展方法
現在我需要弄清楚如何進行單元測試。這是我正在嘗試做的要點:
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,然後我可以斷言返回的內容是正確的?
截至2015年9月27日,更新後的鏈接很可能是http://offroadcoder.com/unit-testing-asp-net-html-helpers-with-simple-fakes/ – Manfred 2015-09-27 03:05:43
這些假貨也適用於我。花了我幾小時(字面上)找到合適的嘲笑/假貨。 Gosh單元測試MVC真的是一個痛苦的屁股。最後,我可以單元測試'HtmlHelper.EditorFor()'擴展方法,而不拋出異常(像'NullReferenceExceptions'),它根本沒有幫助我們! – QuantumHive 2016-05-01 13:41:22