Как делают меня UnitTest пользовательский ActionFilter?

попробуйте следующее: найдите это в своем 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"
6
задан Tomas Aschan 1 June 2009 в 15:20
поделиться

2 ответа

Использование отражения в ваш тест.

   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...

 }
4
ответ дан 17 December 2019 в 07:08
поделиться

Вот сообщение в блоге, в котором описывается, как расширить и выполнить модульное тестирование настраиваемого фильтра авторизации. В сообщении блога подробно описываются обе ваши проблемы, а именно, как проверить, что данный ActionFilter применяется к действию, а также как проверить, что ActionFilter выполняет то, что должен делать.

http: //blog.geniar. com / index.php / 2009/05 / aspnet-mvc-testing-a-custom-authorize-filters /

0
ответ дан 17 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: