Mein Ziel ist es, in der Lage zu testen einige benutzerdefinierte HtmlHelper Erweiterungen - die intern RenderPartial verwenden..net mvc2 benutzerdefinierte HtmlHelper-Erweiterung Einheit testen
http://ox.no/posts/mocking-htmlhelper-in-asp-net-mvc-2-and-3-using-moq
Ich habe versucht, über das Verfahren unter Verwendung der Htmlhelper zu verspotten. Ich gehe jedoch in Null-Wert-Ausnahmen. "Parametername: view"
Wer hat eine Idee ?? Vielen Dank.
Im Folgenden sind die Ideen des Codes:
[TestMethod]
public void TestMethod1()
{
var helper = CreateHtmlHelper(new ViewDataDictionary());
helper.RenderPartial("Test"); // supposingly this line is within a method to be tested
Assert.AreEqual("test", helper.ViewContext.Writer.ToString());
}
public static HtmlHelper CreateHtmlHelper(ViewDataDictionary vd)
{
Mock<ViewContext> mockViewContext = new Mock<ViewContext>(
new ControllerContext(
new Mock<HttpContextBase>().Object,
new RouteData(),
new Mock<ControllerBase>().Object),
new Mock<IView>().Object,
vd,
new TempDataDictionary(),
new StringWriter());
var mockViewDataContainer = new Mock<IViewDataContainer>();
mockViewDataContainer.Setup(v => v.ViewData)
.Returns(vd);
return new HtmlHelper(mockViewContext.Object,
mockViewDataContainer.Object);
}
Sie müssen weitere Details veröffentlichen, damit wir das Problem reproduzieren können. Ich habe den oben erwähnten Code (ich schrieb ihn) zum Testen von Controllern verwendet, die Ansichten mit 'RenderPartial' ohne Probleme darstellen. –