Я полностью ожидаю, что меня за это возмутят, но я не понимаю, как набор модульных тестов вообще что-либо доказывает о том, что заботит клиента, а именно, соответствует ли приложение его бизнес-требованиям.
Вот пример: я только что закончил преобразование фрагмента кода, чтобы исправить большую ошибку, которую мы сделали. Это был классический случай чрезмерного проектирования, и изменения затронули около десятка форм окон и примерно столько же классов.
Это заняло у меня пару дней, теперь все намного проще, мы получили некоторые функции бесплатно, и мы потеряли кучу кода, который делал то, что, как мы теперь знаем, нам действительно не нужно.
Каждая из этих форм отлично работала раньше. Публичные методы делали именно то, что им нужно было делать, и доступ к основным данным был просто отличным.
Так что любой юнит-тест прошел бы.
За исключением, к сожалению, они сделали не то, что мы не осознавали, кроме как в ретроспективе. Как будто мы создали прототип и, только попробовав его использовать, поняли, что это неправильно.
Так что теперь у нас есть более простое, сердитое, более подходящее приложение.
Но вещи, которые были неправильными, были неправильными на уровне, когда модульные тесты никогда не могли их выявить, поэтому я просто не понимаю, как доставка набора модульных тестов с установкой делает что-либо, кроме ложного чувства безопасности .
Может быть, я чего-то не понимаю, но мне кажется, что если поставляемая вещь не функционирует на том же уровне, что и поставленные тесты, они ничего не доказывают.