Code without tests is bad code. Even if it’s looking clean and efficient. Without tests you can’t change it in a verifiable way.
You can’t know if your code is getting better or not.
It’s not a new idea.
But it’s amazing how many times developers will ‘cut’ corners or won’t implement tests because they are too busy to ship a new feature.
In many cases, it’s the opposite case, if you wish to move faster and safer – you need a good tests suite that give you the confidence that your changes didn’t break anything. You wish to have unit tests (wide coverage of functionality and running fast in an automated way), integration tests (a bit slower but still fast and in many cases, with mock data) and end to end tests (Yes, in many cases, in a real production environment). Continue reading