Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Writing testable code

Writing testable code

Rodrigo Boniatti

November 30, 2019
Tweet

More Decks by Rodrigo Boniatti

Other Decks in Programming

Transcript

  1. Writing testable code

    View Slide

  2. Rodrigo Boniatti
    Developer at Codeminer 42

    @boniattirodrigo

    rodrigoboniatti.com

    View Slide

  3. Conditionals

    View Slide

  4. View Slide

  5. Smell

    View Slide

  6. View Slide

  7. View Slide

  8. Refactored

    View Slide

  9. View Slide

  10. View Slide

  11. Conditionals
    • Smell:
    • High cyclomatic complexity score;

    • How to solve?
    • Replace Conditional with Polymorphism;

    View Slide

  12. Global state

    View Slide

  13. Smell

    View Slide

  14. View Slide

  15. Refactored

    View Slide

  16. View Slide

  17. Global state
    • Smell:
    • Coupling;

    • How to solve?
    • Dependency injection;

    View Slide

  18. Life cycle events

    View Slide

  19. Smell

    View Slide

  20. View Slide

  21. Refactored

    View Slide

  22. View Slide

  23. Life cycle events
    • Smell:
    • Hide code behavior;

    • No execution order;

    • How to solve?
    • Single flow;

    View Slide

  24. Principles of testing

    View Slide

  25. Principles of testing
    • Test in isolation;

    • A lot of setup == smell;

    • Hard to test == smell;

    View Slide

  26. Questions?

    View Slide

  27. Thank you
    Code examples: https://github.com/boniattirodrigo/writing-testable-code

    View Slide