我正在使用这个帮助方法将我的PartialViewResult转换为字符串,并将其作为Json返回 - http://www.atlanticbt.com/blog/asp-net-mvc-using-ajax-json-and-partialviews/
我的问题是,我正在使用Moq来模拟控制器,每当我运行使用RenderPartialViewToString()方法的单元测试时,我会在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;
}
这里返回一个代理控制器,也许这就是我遇到错误的原因。你有什么想法如何对其进行单元测试吗?
非常感谢。
NullReferenceException
出现在哪个地方?请精确描述。 - bzlmViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
当我悬停在上面时,ControllerContext.Controller为空。谢谢。 - Saxman