Unit Testing ASP.NET MVC Controller Action contains specific ActionFilter Attributes
ActionFilters in ASP.NET MVC are great. You can now easily share logic between controllers without having to inherit from a base controller, that does the common work. I have a content heavy application that supports a set of layouts. Each layout is rendered by setting the Layout view dynamically, which I do from an ActionFilter. My ActionFilter is fully tested, but when you delegate work to an ActionFilter, you should write a test that ensures the filter is defined on the action. Not surprisingly, this is very simple and relies on reflection (Download from Gist: https://gist.github.com/2605628): /// <summary> /// Verifies the controller action, contains an attribute of the specified attributeType. /// </summary> /// <param name=”controller”>The controller.</param> /// <param name=”action”>The action method.</param> /// <param name=”attributeType”>Type of the attribute to look for.</param> /// <returns>Returns true if the attribute was present on the action. Otherwise … Continued