【发布时间】:2010-06-20 20:21:36
【问题描述】:
我正在尝试使用Rhino.Mocks 模拟ControllerContext 对象,以便在我的控制器单元测试中访问运行时对象,例如用户、请求、响应和会话。我编写了以下方法来尝试模拟控制器。
private TestController CreateTestControllerAs(string userName)
{
var mock = MockRepository.GenerateStub<ControllerContext>();
mock.Stub(con =>
con.HttpContext.User.Identity.Name).Return(userName);
mock.Stub(con =>
con.HttpContext.Request.IsAuthenticated).Return(true);
var controller = CreateTestController(); // left out of example for brevity
controller.ControllerContext = mock;
return controller;
}
但是,我模拟的 ControllerContext 的 HttpContext 为空,我尝试访问 HttpContext.User 等会导致 System.NullReferenceException。
我的嘲笑有什么问题?
【问题讨论】:
标签: asp.net-mvc unit-testing tdd controller rhino-mocks