Написание модульных тестов - довольно распространенная практика.Большим преимуществом является то, что вы не просто пишете тесты, которые пройдёт ваш код, но скорее тесты, которые определяют, что важно, чего вы пытаетесь достичь, и чего вы хотите, чтобы убедиться, что этого не произойдет.Это может помочь вам конкретизировать ваш дизайн.Кроме того, вы можете проверить спек с внешними заинтересованными сторонами, прежде чем кодировать.
Что касается того, какие тесты писать, это немного субъективно в зависимости от времени, которое у вас есть.Я бы не стал сходить с ума, проверяя код для сценариев, с которыми он никогда не столкнется.Тем не менее, это удивительно, что ввод делает его для кода, который "никогда не увидит".Итак, чем больше тестов, тем лучше, но в определенный момент отдача определенно уменьшается.
Язык, который вы кодируете в вопросах.Динамические языки требуют большего количества тестов, потому что компилятор поймает меньше проблем, и ошибки могут быть труднее отследить (так как они могут распространяться дальше от начальной проблемы ввода).По крайней мере, это мое мнение.
Также имеет значение, откуда поступает информация.Широкая общественность должна считаться злонамеренно положительной (например, в Интернете), сотрудники должны считаться некомпетентными, и даже коллеги-программисты (и вы сами!) Должны считаться по крайней мере небрежными.Но опасность падает, когда вы приближаетесь к своему внутреннему кругу.