estoy usando este método de ayuda a convertir mi PartialViewResult en cadena y devolviéndolo como JSON - http://www.atlanticbt.com/blog/asp-net-mvc-using-ajax-json-and-partialviews/ASP.NET MVC - Prueba unitaria RenderPartialViewToString() con Moq framework?
Mi problema es que estoy usando Moq para burlarse del controlador, y cada vez que corro prueba de unidad que utiliza este RenderPartialViewToString() método, obtuve la "referencia de objeto no establecida en una instancia de un objeto". error en ControllerContext.
private ProgramsController GetController()
{
var mockHttpContext = new Mock<ControllerContext>();
mockHttpContext.SetupGet(p => p.HttpContext.User.Identity.Name).Returns("test");
mockHttpContext.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true);
// Mock Repositories
var mockOrganizationRepository = new MockOrganizationRepository(MockData.MockOrganizationsData());
var mockIRenderPartial = new BaseController();
var controller = new ProgramsController(mockOrganizationRepository, mockIRenderPartial);
controller.ControllerContext = mockHttpContext.Object;
return controller;
}
Esto devuelve un controlador proxy, y tal vez es la razón por la que recibí ese error. ¿Alguna idea de cómo probar esta unidad?
Muchas gracias.
Dónde exactamente * * significa el 'NullReferenceException' ocurrir? – bzlm
Ocurre en ControllerContext, creo que debido a que Moq se burla del controlador y solo devuelve el proxy ... Esta es la línea: ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView (ControllerContext, viewName); ControllerContext.Controller es nulo cuando sobre él. Gracias, – Saxman
Obtengo esta excepción también, después de configurar los parámetros "controlador" y "acción" en el RouteData. Rastreo de pila completo: http://pastebin.com/S8c26JLD – EMP