Asp.net mvc 3 ASP.NET MVC MOQ-修改公共操作结果登录以包括会话对象-单元测试失败
我对单元测试和MOQ等非常陌生。我已经修改了public ActionResultAsp.net mvc 3 ASP.NET MVC MOQ-修改公共操作结果登录以包括会话对象-单元测试失败,asp.net-mvc-3,Asp.net Mvc 3,我对单元测试和MOQ等非常陌生。我已经修改了public ActionResultLogOn(LogOnModel模型)Action以包含Session[“UserFullName”],用于日志记录 不幸的是,单元测试失败,没有为会话[“UserFullName”]设置对象引用 谁能告诉我如何通过修改单元测试上的GetAccountController()方法,使用MOQ解决这个问题 注意。HttpSessionStateBase通过HttpContextBase提供。您可以通过Controll
LogOn(LogOnModel模型)
Action以包含Session[“UserFullName”]
,用于日志记录
不幸的是,单元测试失败,没有为会话[“UserFullName”]
设置对象引用
谁能告诉我如何通过修改单元测试上的GetAccountController()
方法,使用MOQ解决这个问题
注意。HttpSessionStateBase通过HttpContextBase提供。您可以通过ControllerContext设置HttpContextBase。这就是我使用Rhinomock的方式
var httpContext = MockRepository.GenerateMock<HttpContextBase>();
var session = MockRepository.GenerateMock<HttpSessionStateBase>();
httpContext.Expect( c => c.Session ).Return( session ).Repeat.AtLeastOnce();
session.Expect( s => s["UserFullName"] ).Return( "John Q. User" );
var controller = GetAccountController();
controller.ControllerContext = new ControllerContext( httpContext, new RouteData(), controller );
...
var httpContext=MockRepository.GenerateMock();
var session=MockRepository.GenerateMock();
Expect(c=>c.Session).Return(Session.Repeat.atlestOnce();
Expect(s=>s[“UserFullName]”)。Return(“johnq.User”);
var controller=GetAccountController();
controller.ControllerContext=新的ControllerContext(httpContext,new RoutedData(),controller);
...