在我的一个模型类中我有属性:
public virtual bool OkToChangeApprovedForPayment
{
get
{
return ExportedDateTime == null && PMApproved == true && HttpContext.Current.User.IsInRole(Resources.Roles.VectorOpsAdmin);
}
}
正如您所看到的,其中一个条件是测试用户所处的角色。是否可以像这样访问模型中的HttpContext?如果不是更好的方法呢?
如果没问题,你会如何进行单元测试呢?你如何替换对HttpContext的调用?
答案 0 :(得分:2)
这是安全的(当然,如果你的模型在正在运行的请求的上下文中执行)。
但是,很难测试。您可以将HttpContextBase的实例注入到更适合测试的模型中。