C# 在单元测试属性时,如何断言OnActionExecuting
我有一个动作过滤器。我想单元测试它在C# 在单元测试属性时,如何断言OnActionExecuting,c#,unit-testing,nunit,rhino-mocks,C#,Unit Testing,Nunit,Rhino Mocks,我有一个动作过滤器。我想单元测试它在OnActionExecuting()方法上。我能够使用RhinoMock模拟HttpContext、ActionParameters和其他必需的对象 下面是它的样子 public class AuthorizeABCAttribute: ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) {
OnActionExecuting()
方法上。我能够使用RhinoMock模拟HttpContext、ActionParameters和其他必需的对象
下面是它的样子
public class AuthorizeABCAttribute: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var abc = filterContext.HttpContext.Request.Headers["X-GOD-MODE"];
var ip = filterContext.HttpContext.Request.UserHostAddress;
var email = filterContext.ActionParameters["EmailAddress"] as string;
if (ISALLOWED(abc, ip, email))
base.OnActionExecuting(filterContext);
else
filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.NotFound);
}
}
因此,根据条件允许访问,否则将给出404
那么在我的单元测试中,我如何为这两种不同的条件断言呢?为什么不在测试中创建一个authorizeabcatribute实例,调用它的OnActionExecuting,然后测试ActionExecutingContext.Result值?允许的
决定了什么?假设这是测试对象的一部分,您是否应该有一个场景列表,该列表将导致它返回true
或false
?如果是这样的话,这不是简单地在传递给此方法的filterContext
上设置这些内容的问题吗?