Unit tests. I’ve been writing so many unit tests.
We have a big change in one of the main classes of our underlying model and we need to make sure it all behaves and as such unit tests just help to act as a specification to program against.
I really like a feature of testng (java lib) that I only encountered for the first time in this project. The “dataprovider” annotation allows me to hand an iterator to a unit test method and it uses those to parametrize and execute each test case as an actual unit even if it is just one method being filled with different datapoints. I love that. So my test cases become more or less a table of value combinations. This helps me define enough of them easily and not overlook certain combinations of possible inputs and we found our first bug within the first 16 test cases.
(It had none when I forked it.)