我有一个使用Request和Session对象的MVC Action。
public ActionResult Index()
{
string eventTypeId = Request.QueryString[QueryStringFor.EventTypeId];
Session["eventTypeId"] = eventTypeId;
return View();
}
如何使此动作单元可测试?
我应该在控制器初始化时传递和注入吗?
我正在使用ControllerBuilder手动构建我的控制器(目前不使用IOC)
ControllerBuilder.Current.SetControllerFactory(new DefaultControllerFactory(new EvaluationCompositionRoot()));
public class EvaluationCompositionRoot : IControllerActivator
{
public IController Create(RequestContext requestContext, Type controllerType)
{
答案 0 :(得分:1)
在asp.net mvc中,请求和会话已经分别是派生自HttpRequestBase和HttpSessionStateBase 的类的对象。在单元测试期间不应该存在模拟这些对象的问题