Before we start…• Unit tests are “Code”• Not efficient to test the UI• Unit testing is not a testing activity.
Why unit testing?• Acts as specifications for your code / business requirements• Helps to produce better code (Readable / Maintainable)• Make you think before you write any code
It’s good unit test, if…• One Unit Test Class per “Class”• Each test should run in isolation• Test should be clear• Single outcome per test• Name Tests from Users Perspective – Long test method names. – Conventions
Recommendations• Use Mocking frameworks• Mark classes and Interfaces as internal• When refactoring think of architecture• Consider splitting class into multiple files• Avoid using Static classes/Methods• UI Containing non-user logic
Continued…• Inject dependencies and state via constructor• Avoid classes coupled to many other classes• Avoid classes coupled to concrete classes rather than interfaces