Я использую шаблонные помощники в проекте ASP.NET MVC 3.Один шаблон отображения содержал опечатку - случайный дополнительный блок кода - который вызывал ошибку компилятора при возврате этого представления (вы знаете, «не помещайте @if в блок кода»).
Всехорошо, за исключением того, что тестовый метод, который вызвал это представление, все еще был успешным.Я с трудом могу понять, как бы я провалил этот блок кода в модульном тесте.
Вот плохой шаблон отображения:
@model MemberSelectorViewModel
@{
Layout = "~/Views/Shared/_DisplayFormItem.cshtml";
}
@section DataContent {
@{ // <- this was the typo, and it...
@if (Model.idMember.HasValue) // <- causes this to throw a compiler error
{
@Html.ActionLink(Model.FullName, "Details", "Member", new { id = Model.idMember.Value }, null )
@Html.HiddenFor(m=> m.idMember)
}
}
}
Вот тест, который я считаю необходимымпотерпеть неудачу:
[TestMethod]
public void DetailsReturnsView()
{
MemberJobController target = new MemberJobController(TestHarness.Context);
memberjob mj = TestHarness.UnitOfWork.MemberJobRepository.FirstOrDefault(x => true);
ActionResult result = target.Details(mj.idmemberjob); // <- this should hit the compiler error, I would have thought
Assert.IsNotNull(result);
}
Но этот тест пройден успешно.
Есть ли у вас идеи, как написать тест, который потерпит неудачу с опечаткой "@ {@if ()" в шаблонном помощнике?