Asp.net-Mvc
如何使用 Moq 對 HtmlHelper 進行單元測試?
有人可以告訴我你將如何使用 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); }