Estoy de acuerdo en que probar el tipo de vista devuelto sería algo inútil. Sin embargo, probar que la "vista" esperada fue devuelta junto con sus datos correctos sería un caso de prueba válido IMO.
Por ejemplo, aquí hay un caso de prueba de edición singular para un controlador de edición. Tenga en cuenta que este ejemplo está haciendo uso de Moq y Nunit, pero aparte de eso es bastante sencillo.
Tenga en cuenta que ese ViewResult se envía al modelo de vista esperada y las aserciones se realizan contra el contacto esperado.
prueba:
[Test]
public void Edit_Get_Should_Lookup_Contact_From_Repository_And_Return_Edit_View()
{
// arrange
var _repository = new Mock<IContactRepository>();
var expectedContact = new Contact
{
First = "first",
Last = "last",
Email = "[email protected]"
};
var mockContext = new Mock<ControllerContext>();
_repository.Setup(x => x.GetById(It.IsAny<int>())).Returns(expectedContact);
var controller = new ContactController(_repository.Object)
{
ControllerContext = mockContext.Object
};
// act
var result = controller.Edit(1) as ViewResult;
var resultData = (Contact)result.ViewData.Model;
// assert
Assert.AreEqual("Edit", result.ViewName);
Assert.AreEqual(expectedContact.First, resultData.First);
Assert.AreEqual(expectedContact.Last, resultData.Last);
Assert.AreEqual(expectedContact.Email, resultData.Email);
}
controlador:
[HttpGet]
public ActionResult Edit(int id)
{
var contact = _repository.GetById(id);
return View("Edit", contact);
}
Ah ... 'result.Model' parece útil. –