作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直试图找到一些关于此的直接信息,但我一直无法找到 - 例如,我发现的内容对于我理解正在发生的事情来说含糊不清,或者对于错误的事情来说太具体了我找到的用于对 AuthorizeAttribute 进行单元测试的教程。 (当然,第三种选择是我太笨了,无法意识到我正在阅读我正在寻找的信息……在这种情况下,我仍然需要帮助,因为我很笨:P)
我希望能够测试两件事:
CustomValidationFilter
应该检查两个提交的表单值是否相同,并添加
ModelStateError
如果不。如果值不相同,我想验证错误是否添加了正确的错误消息,并且如果值相等(并且非空),则不会添加错误。
Write
对
GuestbookController
的操作.我想验证过滤器是否应用于此操作。
最佳答案
在测试中使用反射。
var method = typeof(MyController).GetMethod("MyMethod");
var attribute = method.GetCustomAttributes(typeof(CustomValidationFilter),false);
.Cast<CustomValidationFilter>()
.SingleOrDefault();
Assert.IsNotNull( attribute );
Assert.AreEqual( "value", atttribute.SomeProperty );
public void AttributeTest()
{
var httpContext = MockRepository.GenerateMock<HttpContextBase>();
var controller = new FakeController();
controller.controllerContext = new ControllerContext( httpContext, new RouteData(), controller );
...
attribute.OnActionExecuting( filterContext );
Assert...
}
关于asp.net-mvc - 如何对自定义 ActionFilter 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/935276/
我是一名优秀的程序员,十分优秀!