Monorail’s SmartDispatchController is fantastic. One small hurdle is testability right out of the box. For instance, if I have a controller action:
If I want to unit test this action, I need to get at the Session IDictionary. It’s protected, so I can’t get at it in a unit test to ensure the object was added to session.
Here is a quick way around this problem:
Make your own controller base class that derives from SmartDispatchController. Then add the following method to the base class:
Now, for testing you can get at the Session property, but at runtime, there is no change.