单元测试用customattribute修饰的Controller动作

时间:2015-07-29 11:09:27

标签: c# asp.net-mvc-4 moq

控制器操作已经使用System.Security.Permissions.CodeAccessSecurityAttribute的自定义实现进行了修饰,如下所示。如何在单元测试控制器操作方法时为属性注入依赖项。通过在其中直接使用ConfigurationManager类,测试变得更加困难。安全属性的代码由客户提供,我们不打算更改它。是否有任何其他方式来注入依赖项,以便我可以在不更改自定义CodeAccessSecurityAttribute的情况下对控制器方法进行单元测试。

  [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
public sealed class CustomSecurityAttribute : CodeAccessSecurityAttribute
{
    public CustomSecurityAttribute(SecurityAction action)
        : base(action)
    {
    }

    public string Roles { get; set; }

    public override IPermission CreatePermission()
    {
            ConfigurationManager.GetSection("procedureList") as NameValueCollection
            result = new PrincipalPermission(null, roles[0]);


        return result;
    }
}

0 个答案:

没有答案