C# 用customattribute修饰的单元测试控制器操作
控制器操作已使用System.Security.Permissions.CodeAccessSecurityAttribute的自定义实现修饰,如下所示。如何在单元测试控制器操作方法时为属性注入依赖项。通过直接使用其中的ConfigurationManager类,测试变得更加困难。安全属性的代码已经由客户端提供,我们不打算更改它。有没有其他方法可以注入依赖项,这样我就可以在不更改自定义CodeAccessSecurityAttribute的情况下对控制器方法进行单元测试C# 用customattribute修饰的单元测试控制器操作,c#,asp.net-mvc-4,moq,C#,Asp.net Mvc 4,Moq,控制器操作已使用System.Security.Permissions.CodeAccessSecurityAttribute的自定义实现修饰,如下所示。如何在单元测试控制器操作方法时为属性注入依赖项。通过直接使用其中的ConfigurationManager类,测试变得更加困难。安全属性的代码已经由客户端提供,我们不打算更改它。有没有其他方法可以注入依赖项,这样我就可以在不更改自定义CodeAccessSecurityAttribute的情况下对控制器方法进行单元测试 [Attribute
[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创建了框架规范来帮助模拟类似的困难事情,你可以看看,也许它可以帮助你:你能展示一下测试中的代码吗,也就是说,你想在这里测试什么?如果我们能看到的话,可能有办法简化代码。