• @entropicdrift
    link
    2
    edit-2
    11 months ago

    Ice cold take: You don’t have enough tests if you can’t safely refactor on a whim.

    A well-tested project should allow you to refactor arbitrarily. As long as all existing tests pass, rewritten code is at least functionally equivalent to the previous code. This allows for fearless performance rewrites, refactoring, and even complete redesigns of components.

    In other words, the tests are more valuable than the code itself. The spec for the codebase proper should be defined by the tests. When the spec changes or grows, the tests should change or grow, and then the main codebase should be modified to pass all tests once again.

    TL;DR TDD evades this issue entirely and is fantastic for larger and/or longer-term projects