Asp.net mvc MVC是否可以访问模型中的HttpContext.Current.User以及如何测试

Asp.net mvc MVC是否可以访问模型中的HttpContext.Current.User以及如何测试,asp.net-mvc,unit-testing,Asp.net Mvc,Unit Testing,在我的一个模型类上,我具有以下属性: public virtual bool OkToChangeApprovedForPayment { get { return ExportedDateTime == null && PMApproved == true && HttpContext.Current.User.IsInRole(Resources.Roles.Vec

在我的一个模型类上,我具有以下属性:

public virtual bool OkToChangeApprovedForPayment
        {
            get
            {
                return ExportedDateTime == null && PMApproved == true && HttpContext.Current.User.IsInRole(Resources.Roles.VectorOpsAdmin);
            }
        }
如您所见,其中一个条件是测试用户所处的角色。像这样访问模型中的HttpContext可以吗?如果不是的话,还有什么更好的方法

如果可以,您将如何对其进行单元测试?如何替换对HttpContext的调用?

这是安全的(当然,如果您的模型在运行请求的上下文中执行)


不过,这将很难测试。您可以将HttpContextBase的实例注入到更适合测试的模型中。

在这种情况下,您的模型需要知道什么是HTTP上下文。这有意义吗?嗯,是的。问题是,这是否可以练习,如果可以,如何测试?