с использованием методологии разработки через тестирование
Подход «по книге» будет выглядеть примерно так:
Создайте контрольный список и добавьте небольшая горстка идей для тестирования. Список не должен быть особенно длинным - четырех достаточно - и вы можете добавлять идеи по мере их обдумывания.
Выберите один из "маленькие" тесты для начала с
Реализуйте этот тест
3a) Добавьте производственный код, необходимый для получения теста для компиляции 3b ) Добавьте производственный код, чтобы получить "правильный" неправильный ответ
Реализовать ровно столько кода, чтобы пройти тест; обычно вы оптимизируете время настенных часов здесь, поэтому часто это просто означает жесткое кодирование правильного ответа.
«Реорганизуйте» производственный код, то есть цикл между внесением небольших улучшений и повторно запускайте тест, пока не будете довольны качеством кода, поддерживающего только этот тест.
Выберите следующий тест и повторяйте шаги 3–6, пока все элементы на вашем чек-лист готов.
assert( f("abba","dog cat cat fish")) == False
Ага - это нормально. В зависимости от местных соглашений вы можете предпочесть
assert ! f("abba","dog cat cat fish")
Тесты, такие как производственный код, выигрывают от дизайна, поэтому вы захотите рассмотреть, какие характеристики (помимо указания машине, что делать) вы хотите, чтобы тестовый код иметь.