Estoy probando el marco MOQ y hasta ahora he topado con una barrera. La siguiente prueba unitaria falla porque el valor real de la propiedad ViewName es una cadena vacía.Cómo simular el contexto del controlador con moq
¿Alguien podría indicarme en la dirección correcta por qué esto no está pasando la prueba?
[TestMethod]
public void Can_Navigate_To_About_Page()
{
var request = new Mock<HttpRequestBase>();
request.Setup(r => r.HttpMethod).Returns("GET");
var mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.Setup(c => c.Request).Returns(request.Object);
var controllerContext = new ControllerContext(mockHttpContext.Object,
new RouteData(),
new Mock<ControllerBase>().Object);
var controller = new HomeController();
controller.ControllerContext = controllerContext;
var result = controller.About() as ViewResult;
Assert.AreEqual("About", result.ViewName);
}
Lo siguiente también produce un ViewName vacío.
HomeController controller = new HomeController();
ViewResult result = controller.About() as ViewResult;
Assert.IsNotNull(result);
Assert.AreEqual("About", result.ViewName);
De ejemplos en la web que demuestran burlas y también es bueno TTD ya solo queda confundido en cuanto a qué otras tuberías que necesito para hacer cualquiera de la primera prueba de la unidad de trabajo ejemplo anterior.
Saludos,
Andrew
Gracias, después de ver que una de las firmas de método es Ver (string viewName, modelo de objeto) ¡su punto tiene mucho sentido! PD. la prueba pasó! :-) –