Я написал HtmlHelper, который в свою очередь вызывает Html.TextBoxFor (). Тем не менее, когда я выполняю тест, я получаю исключение пустого ref. Я предполагаю, что я создаю HtmlHelper неправильно, но я не могу понять, что не так.
Я максимально упростил код:
public static HtmlHelper CreateHtmlHelper(ViewDataDictionary viewData = null, TModel model = null) where TModel : class, new()
{
if (viewData == null)
viewData = new ViewDataDictionary(model ?? new TModel());
Mock mockViewContext = new Mock(
new ControllerContext(
new Mock().Object,
new RouteData(),
new Mock().Object),
new Mock().Object,
viewData,
new TempDataDictionary(),
new StringWriter());
var mockViewDataContainer = new Mock();
mockViewDataContainer
.Setup(v => v.ViewData)
.Returns(viewData);
return new HtmlHelper(mockViewContext.Object, mockViewDataContainer.Object);
}
[TestMethod]
public void ReadOnlyTextBox_Returns_ReadOnly_Textbox()
{
var cl = new Class1();
var helper = CreateHtmlHelper(model: cl);
MvcHtmlString result = helper.ReadOnlyTextBox(m => m.First);
Assert.IsNotNull(result);
}
public static MvcHtmlString ReadOnlyTextBox(this HtmlHelper helper, Expression> expr)
{
// Do some stuff
return helper.TextBoxFor(expr, new { @readonly = "readonly", @disabled = "disabled" });
}
Исключение вызывается в helper.TextBoxFor (). Кто-нибудь видит что-то, что выглядит неправильно?
Я взял метод CreateHtmlHelper из http://joyofexcellence.com/blog/index.php/2010/02/27/testing-htmlhelper-in-mvc-2-rc-2/