This document discusses best practices for test-driven development (TDD). It covers how to write testable code by avoiding large components, separating concerns, and being careful of over-engineering. Principles of TDD like not testing dependencies and having independent, non-side effecting tests are outlined. Different types of unit tests, like limiting knowledge of implementations, are described. Tools for TDD like enzyme and snapshot testing best practices are also mentioned. Visual regression testing and tips like maintaining a structured backlog and learning from fixed bugs are briefly covered.
Related topics: