Я не люблю писать тесты. Не ленюсь, а не люблю. Покрытие тестами, зачастую, это деятельность ради деятельности, написать хороший тест, который учитывает все возможные сценарии сложно, а если у нас ещё есть какие-то внешние данные - то не всегда возможно. Не лучше ли вместо набивания килобайтов тестов сделать проверки входных данных в самой программе?
Однако есть best practices и в них нас заставляют писать модули, покрывать их тестами. Иначе это плохой код... Понятно, зачем это нужно, когда у тебя в команде 10 кодомакак, и они работают над одним проектом, ты не можешь заставить одну макаку писать эту функцию, а вторую - другую. Тебе надо выделить модуль для каждой макаки, покрыть его тестом, а дальше устраивать код-ревью, после того, как тесты прошли, чтобы убедиться, что макака действительно что-то нормальное написала.
Но если ты сам себе макака - зачем нужны тесты, ты отвечаешь за каждую функцию, что она сделана наилучшим доступным тебе способом...
Не хочу писать тесты, узнавать best practices и patterns хочу, это полезно. Тесты и разбиение на модули - пустая трата времени.