Нужно ли мне проверять validateFoo и validateBar в этом случае?
Это зависит.
Отчасти TDD заключается в том, что мы должны быть в состоянииперебрать внутренний дизайн;иначе рефакторинг.Это волшебство, которое позволяет нам начать с небольших инвестиций в предварительный дизайн и отработать все остальное по ходу дела - тот факт, что мы можем что-то изменить, и тесты оценивают изменение , не мешая .
Это действительно хорошо работает, когда требуемое поведение вашей системы стабильно.
Когда требуемое поведение системы не стабильно, когда у нас многоиз решений , которые находятся в процессе изменения, когда мы знаем, что требуемые поведения будут меняться, но мы не знаем, какие ... наличие одного теста, охватывающего множество нестабильных поведений, приводит к тому, что тест становится "хрупким".
В течение долгого времени это было проклятием автоматизированного тестирования пользовательского интерфейса - поскольку тестирование пользовательского интерфейса охватывает практически все решения на каждом уровне системы, тестирование постоянно проводилось для устранения каскадов ложных срабатываний, которые возникалиперед лицом незначительных изменений поведения.
В этой ситуации вы можете начать искатьnto способы ввести переборки, которые предотвращают чрезмерный ущерб при изменении требования.Мы начинаем писать тесты, которые подтверждают, что испытуемый ведет себя так же, как , что ведет себя более простой оракул, вместе с тестом, что более простой оракул делает правильные вещи.
Это тожеявляется частью цикла обратной связи TDD - поскольку тесты, которые охватывают множество нестабильных поведений, являются сложными, мы реорганизуем дизайн, поддерживающий тестирование поведения в изолированном фрагменте, и более крупные композиции с точки зрения их более простых элементов.