C# 用customattribute修饰的单元测试控制器操作

C# 用customattribute修饰的单元测试控制器操作,c#,asp.net-mvc-4,moq,C#,Asp.net Mvc 4,Moq,控制器操作已使用System.Security.Permissions.CodeAccessSecurityAttribute的自定义实现修饰,如下所示。如何在单元测试控制器操作方法时为属性注入依赖项。通过直接使用其中的ConfigurationManager类,测试变得更加困难。安全属性的代码已经由客户端提供,我们不打算更改它。有没有其他方法可以注入依赖项,这样我就可以在不更改自定义CodeAccessSecurityAttribute的情况下对控制器方法进行单元测试 [Attribute

控制器操作已使用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;
    }
}

这不是答案,而是提示。这种事情有点难做。Matt Honeycutt创建了框架规范来帮助模拟类似的困难事情,你可以看看,也许它可以帮助你:你能展示一下测试中的代码吗,也就是说,你想在这里测试什么?如果我们能看到,可能有办法简化代码。这不是一个答案,而是一个提示。这种事情有点难做。Matt Honeycutt创建了框架规范来帮助模拟类似的困难事情,你可以看看,也许它可以帮助你:你能展示一下测试中的代码吗,也就是说,你想在这里测试什么?如果我们能看到的话,可能有办法简化代码。