2008-09-30 5 views
3

Представьте, что вы реализуете историю пользователей, содержащую различные новые функции и добавляя сложность базы кода. Существующий код довольно хорошо освещен, и вы только что решили интерфейсы. Вы начинаете реализовывать функции, начиная с тестов.Как вы обрабатываете TDD в непрерывной интеграции?

Теперь у вас довольно сложные тестовые примеры, основанные на требованиях, но реализация нигде не приближается к точке, когда вы можете зафиксировать полностью рабочий код SCM, и многие тесты терпят неудачу (как и должно быть).

Существует предположение, что при непрерывной интеграции все сборки должны быть зелеными, если это возможно, и, таким образом, вы не должны совершать, так как вы нарушаете сборку. Но вы также не должны "Go dark" и сохраните такой код для себя ...

Какова предложенная процедура в такой ситуации?

ответ

5

Не принимайте решение по телефону все интерфейсов заранее. Развивайте постепенно в типичном ритме TDD: напишите тест; сделать пробный проход; рефакторинг. Это должно держать все в хорошей форме, панель всегда будет зеленой, и вы можете проверить код, не опасаясь, что вы сломаете сборку.

Для этого требуется другой стиль написания кода, но в конце концов вы привыкнете к ритму.

+0

Я думаю, что, начиная хакерство без концептуального анализа является плохо. Это приводит к недостижимому, а иногда и не очень логичному коду. Представьте, что вы не в идеальной ситуации, когда все члены команды одинаково квалифицированы, но есть и значительное количество юниоров. – 2008-09-30 11:34:31

1

Как насчет пропуска тех тестов, которые, как вы знаете, не пройдут, потому что функциональность в настоящее время отсутствует?

Сделать очевидным, что вы тоже пропускаете тесты! На самом деле заставить его кричать «как застрявшая свинья», как говорят в Оз! (-: «ваш бар зеленый».

По мере добавления функциональности, включите связанные тесты и держать

Вот another great article над на прагматические Программистах, что охватывает делая разбитые окна очевидных для другого

НТН

веселит,

Роб

Смежные вопросы