2013-07-31 37 views
1

沒有人知道如何模擬HtmlHelper.Partial?moq System.Web.Mvc.HtmlHelper部分方法

我已經創建了我自己的htmlhelper類,並且上述helper類的一個特性是返回一個htmlHelper.Partial的MvcHtmlString。

例子:

public static MvcHtmlString ScriptEditorFor(this HtmlHelper<ViewModel> htmlHelper, 
    Identifiers.PainAssessmentVariables painVariable) 
{ 
    return htmlHelper.Partial("test"); 
} 

我得到空引用異常,當我嘗試起訂量測試這個

+0

你要考什麼課?爲什麼你需要模擬'HtmlHelper.Partial'?你的測試是怎樣的? – sloth

+0

我爲HtmlHelper創建了一個擴展方法。 例如: 公共靜態MvcHtmlString ScriptEditorFor(此的HtmlHelper 的HtmlHelper) { \t返回htmlHelper.Partial( 「測試」) } 現在我需要的單元測試使用MOQ所述方法。 例如: 公共無效AllParties() { \t變種的HtmlHelper =新的HtmlHelper (viewContext,viewDataContainer.Object,路由); \t var test = htmlHelper.ScriptEditorFor(Identifiers.PainAssessmentVariables.AllParties,currentRoute); \t Assert.AreEqual(source,test.ToHtmlString()); } –

+0

請編輯您的問題,幷包括您評論中的所有數據。 –

回答

0

你不能。 Partial是一種靜態方法(擴展方法),並且moq不能嘲諷靜態方法。

您必須在接口後面隱藏對Partial的調用,或者使用能夠模擬靜態方法的模擬框架。

+0

我明白了。非常感謝。 –