3

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

public virtual bool OkToChangeApprovedForPayment
        {
            get
            {
                return ExportedDateTime == null && PMApproved == true && HttpContext.Current.User.IsInRole(Resources.Roles.VectorOpsAdmin);
            }
        }

如您所见,其中一个条件是测试用户所处的角色。像这样访问模型中的 HttpContext 是否可以?如果不是什么是更好的方法呢?

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

4

1 回答 1

2

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

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

于 2012-04-22T21:32:16.950 回答