Con el fin de tener la ActionFilter llamada automática, que van a necesitar para ejecutar la acción del controlador invocador. Esto es posible, pero significa que el marco MVC intentará y ejecutará el resultado. Esto significa que tendría que usar simulaciones para anular la ejecución del resultado. De nuevo, eso es posible, pero significa que su prueba unitaria se está volviendo más burlona que el código real. Puede ser más correcto probar el filtro directamente. Después de todo, el hecho de que se llame a OnActionExecuting es una característica del framework, y no es necesario probar el framework por sí mismo.
pero creo que lo que realmente está diciendo es que desea probar WhateverAction, y que la acción no puede trabajar a menos que el ActionFilter ha ejecutado.
En primer lugar, me gustaría hacer preguntas sobre este diseño. ¿Es esto correcto? Podría ser. Es razonable, por ejemplo, que una acción con el atributo Autorizar suponga que cuando se ejecuta hay un usuario conectado. Por supuesto, la acción debería probar esto, pero la presunción es segura. Por otro lado, las acciones probablemente no requieran filtros para realizar una inicialización específica de la acción. Entonces debería hacer la pregunta, pero la respuesta es que el diseño es correcto.
En este caso, la mejor decisión para una prueba unitaria podría ser ejecutar manualmente el filtro en la prueba de unidad, y escribir una prueba de unidad separada que pruebe que la acción está decorada con el atributo correcto.
más información: http : //stackoverflow.com/questions/10197677/how-to-test-that-a-method-argument-is-decorated-with-an-attribute – Spock