Your assumptions are correct.
Running a project without unit tests (like them, don't be fooled) may seem enjoyable during the first few weeks: less code to write, less architecture for thought, less problems to worry about. And you can see that the code is working correctly, right?
But as soon as someone (someone else or even the original encoder) returns to an existing piece of code to change it, add a function, or just understand how it works and what it definitely did, everything becomes much more problematic. And before you realize this, you will spend nights looking at the log files and debugging what seemed like a small feature, just because it needs to integrate with other code that doesn't know exactly how it works. And you will hate your work.
If this is not worth testing (with actual unit tests), then it is not worth writing the code first. Everyone who has tried coding without and with unit tests knows this. Please, please make them change their mind. Every time a piece of unverified code is checked somewhere, the puppy dies horribly.
In addition, I must say that it is a lot (A LOT) more difficult to add tests later to the project, which was done without testing, and not from the very beginning to create test and production code. Testing will not only help you make sure that your code is working fine, but also improves the quality of the code, forcing you to make the right decisions (for example, coding on interfaces, free connection, inverting control, etc.).
source share