Asp.net-Mvc

如何使用 Moq 對 HtmlHelper 進行單元測試?

  • March 22, 2010

有人可以告訴我你將如何使用 Moq 創建一個模擬 HTML 助手嗎?

This article有一個連結到聲稱描述這個的文章,但點擊連結只返回一個ASP.NET執行時錯誤

[編輯]我在這裡 問了一個與同一主題相關的更具體的問題,但沒有得到任何回應。我認為它太具體了,所以我想我可以對更一般的問題得到更一般的答案,並對其進行修改以滿足我的要求。

謝謝

你可以做的是:

HtmlHelper helper = null;
helper.YourHelperMethod();

無需嘲笑任何東西。對我來說效果很好。

是另一篇文章,向您展示如何實現相同的目標:

public static HtmlHelper CreateHtmlHelper(ViewDataDictionary vd)
{
  var mockViewContext = new Mock<ViewContext>(
    new ControllerContext(
      new Mock<HttpContextBase>().Object,
      new RouteData(),
      new Mock<ControllerBase>().Object),
    new Mock<IView>().Object,
    vd,
    new TempDataDictionary());

  var mockViewDataContainer = new Mock<IViewDataContainer>();
  mockViewDataContainer.Setup(v => v.ViewData).Returns(vd);

  return new HtmlHelper(mockViewContext.Object, mockViewDataContainer.Object);
}

引用自:https://stackoverflow.com/questions/2495922