Testability and DesignDesign for TestabilityThe Attribute of ControlThe Attribute of VisibilityThe Attribute of SimplicityLoosen Up Your DesignInterface-Based ProgrammingRelativity of Software TestabilityTestability and CouplingTestability and Object OrientationBasics of Unit TestingWorking with a Test HarnessChoosing a Test EnvironmentTest FixturesArrange, Act, AssertData-Driven TestsAspects of TestingVery Limited ScopeTesting in IsolationFakes and MocksNumber of Assertions per TestTesting Inner MembersCode CoverageTesting Your ASP.NET MVC CodeWhich Part of Your Code Should You Test?How Do I Find Relevant Code to Test?The Domain LayerThe Orchestration LayerThe Data Access LayerUnit Testing ASP.NET MVC CodeTesting If the Returned View Is CorrectTesting LocalizationTesting RedirectionsTesting RoutesDealing with DependenciesAbout Mock and Fake ObjectsTesting Code that Performs Data AccessTesting Asynchronous MethodsRefactoring to the Humble Object PatternMocking the HTTP ContextMocking the HttpContext ObjectMocking the Request ObjectMocking the Response ObjectMocking the Session ObjectMocking the Cache ObjectTesting Controller Methods with FiltersSummary