Search code examples
unit-testinglanguage-agnosticautomated-tests

Writing "unit testable" code?


What kind of practices do you use to make your code more unit testing friendly?


Solution

    • TDD -- write the tests first, forces you to think about testability and helps write the code that is actually needed, not what you think you may need

    • Refactoring to interfaces -- makes mocking easier

    • Public methods virtual if not using interfaces -- makes mocking easier

    • Dependency injection -- makes mocking easier

    • Smaller, more targeted methods -- tests are more focused, easier to write

    • Avoidance of static classes

    • Avoid singletons, except where necessary

    • Avoid sealed classes