Note to self: Asp.Net MVC Controllers are not Code Behind
Sometimes I think things are more complicated than they really are. I got my head into a bind recently when I had some code that I really wanted under test in a Controller Action.
My first thought was “Crap, this is going to be rough”. Mainly I was still thinking of my time trying to test Code Behind in Asp.Net WebForms. I had to smack myself a few times after I remembered that the Controller base class is an abstract type. Reality is that a Controller doesn’t have to be any harder to test than any other service class. It isn’t like inheriting from Page (Asp.Net WebForms).
Not that my code did not have some lingering issues. Like: why did I have something in my Controller Action that would require testing in the first place? I hate having much logic at all in my Actions. Get input, send it off for processing (logic), go somewhere. That should be about it – unless you have to go to different places depending on what is returned. Now, I want some tests.
Anyway, now back to your regularly scheduled program.