попробуйте следующее: найдите это в своем php.ini и раскомментируйте extension_dir = "ext"
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"
Использование отражения в ваш тест.
var method = typeof(MyController).GetMethod("MyMethod");
var attribute = method.GetCustomAttributes(typeof(CustomValidationFilter),false);
.Cast<CustomValidationFilter>()
.SingleOrDefault();
Assert.IsNotNull( attribute );
Assert.AreEqual( "value", atttribute.SomeProperty );
Создайте модульный тест для метода в вашем классе. Создайте макет filterContext с соответствующими данными и убедитесь, что любые переменные, которые должен установить метод, на самом деле соответствуют вашим ожиданиям.
public void AttributeTest()
{
var httpContext = MockRepository.GenerateMock<HttpContextBase>();
var controller = new FakeController();
controller.controllerContext = new ControllerContext( httpContext, new RouteData(), controller );
...
attribute.OnActionExecuting( filterContext );
Assert...
}
Вот сообщение в блоге, в котором описывается, как расширить и выполнить модульное тестирование настраиваемого фильтра авторизации. В сообщении блога подробно описываются обе ваши проблемы, а именно, как проверить, что данный ActionFilter применяется к действию, а также как проверить, что ActionFilter выполняет то, что должен делать.
http: //blog.geniar. com / index.php / 2009/05 / aspnet-mvc-testing-a-custom-authorize-filters /