You must log in or register to comment.
Make sure to test that the test breaks when you unfix the bug.
- TDD (red-green-refactor)
- Dependency injection
- Focusing/skipping tests
- Minimize stubbing (only stub when you have to, and stub closest to the edge of the system)
- Use rollback or other data cleanup strategy. Ensure tests don’t leave data leftovers.
- Test the behavior, not the implementation. Don’t stub and spy so much that refractors to the source code with an equivalent implementation break the test or require extensive refractors to pass again.
That the spec was changing tomorrow because the head of product changed his mind again. ;)
But you will be glad for every non affected test, because the ensure nothing else breaks when you fulfil the whims of PM.
I love having tests
Except for those that are too coupled. Or those that pass because the response of the class you changed was stubbed in that other test.
I love tests too by the way. Just many things I’m still not sure how to test properly. Always struggling with the borders between integration and isolation.