我有一个ActionFilterAttribute。我想在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。
所以在我的单元测试中,我如何断言这两种不同的情况?