Одно правило, которое я использую для принятия решения о том, следует ли разрабатывать модульные тесты: если ваш класс (или любой другой модуль) будет выпущен «в дикую природу», тогда вам определенно следует подумать о написании модульных тестов.
Под «дикой природой» я подразумеваю: как только ваш код окажется в ситуации, когда вы не можете предсказать или контролировать, как вещи будут взаимодействовать с ним. Поэтому классы, предоставляемые через API, или классы, открытые для пользовательского ввода, вероятно, должны быть проверены модулем.
Лично я думаю, что написание юнит-тестов для всего , вероятно, будет пустой тратой вашего времени. Это действительно сложный вопрос, который необходимо учитывать:
- Насколько сложен класс? Простые до смерти классы могут не стоить проверять.
- Насколько критичен класс? Надеемся, что код, работающий в банкомате, будет проверен модулем.
- Насколько вы контролируете, как используется класс?
Тогда всегда есть:
- Когда заканчивается срок выполнения проекта?
- Сколько человеческих сил вы посвятили созданию тестов?
- Являются ли ваши требования конкретными и подробными, или класс все еще меняется довольно часто?
Что касается сложных занятий, возможно, прочитайте немного о нечетком тестировании .