Самая важная политика в отношении Git коммитов состоит в том, что каждый коммит должен проходить сборку . Можно было бы возразить, что с TDD имело бы смысл фиксировать каждый шаг цикла красный / зеленый / рефакторинг, например:
- Red, совершить (но не делайте этого)
- Зеленый, фиксация
- Рефакторинг, фиксация
Однако, если вы сделаете фиксацию на красном, у вас будут коммиты, которые не пройдут сборку, что будет полезно например, git bisect
невозможно. Я думаю, что можно делать отдельные коммиты из фаз зеленый и рефакторинг , если хотите, но если вы можете сделать каждое общее изменение небольшим, это не имеет большого значения.
Если вы можете добавить имитацию перед добавлением тестов, но сборка все равно проходит, я считаю это приемлемой практикой. Я бы не сделал этого сам, но я не понимаю, как это может быть проблемой.
Обычно рецензент смотрит на комбинированный diff нескольких коммитов, так что это вряд ли сбивает с толку.
Тем не менее, с TDD наиболее распространенный процесс - это сначала написать тест, а затем написать достаточно кода, чтобы он прошел. Если это включает в себя моки, добавьте их в качестве реакции на тест.
Если вы обнаружите, что это делает некоторые грубые коммиты, то это процесс TDD дает вам обратную связь. Отзывы заключаются не в том, что ваше применение процесса обязательно неверно, а в том, что вам может быть полезно пересмотреть дизайн вашего API.