"If you change the implementation of your project, some of your unit tests will break, without anything being wrong with your project"
That is a big but common mistake! You don’t change the implementation for intentional behavior change before you change the test.
See, in TDD the tests define the behavior of my units. If I want anything different, I define it within my test first. Red, refactor, Green.
I know, it takes a lot of discipline to do right, but the benefits are immense.
"If you change the implementation of your project, some of your unit tests will break, without anything being wrong with your project"
That is a big but common mistake! You don’t change the implementation for intentional behavior change before you change the test.
See, in TDD the tests define the behavior of my units. If I want anything different, I define it within my test first. Red, refactor, Green.
I know, it takes a lot of discipline to do right, but the benefits are immense.