Как применить Test Driven Development для нового проекта? - PullRequest
3 голосов
/ 06 февраля 2011

Я начинаю новый проект и хочу использовать Test Driven Development, но мне сложно понять, как писать тесты, когда у вас нет модели данных или интерфейсов.

ИМО, модель данных и интерфейсы должны быть написаны. Затем необходимо реализовать несколько функций, чтобы убедиться, что модель данных и интерфейсы «созрели». (иначе изменения либо будут минимальными). Тогда я бы написал модульные тесты. После этого шага, я думаю, вы можете следовать TDD.

Это правильный подход?

Кстати, не кажется ли, что некоторые из этих новых технологий, таких как TDD, не учитывают и не документируют, что делать для новых проектов.

Ответы [ 4 ]

4 голосов
/ 06 февраля 2011

Как говорят, «начать с неудачного юнит-теста».

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

Может быть, если вы приведете пример приложения, мы можем помочь вам найти первые несколько неудачных тестовтесты.

3 голосов
/ 06 февраля 2011

TDD НЕ представляет собой многодневный процесс написания тестов, а затем написания кода для прохождения этих тестов.TDD предполагает объединение усилий по тестированию параллельно с усилиями разработчиков.

Написание нескольких тестов для адресации потенциального класса, а затем написание класса было бы примером параллельной работы.Написание тестов для модуля, состоящего из множества классов, затем написание классов для прохождения этих тестов - не параллельное усилие, и его следует избегать, поскольку рефакторинг неизбежен на протяжении всей разработки.

2 голосов
/ 06 февраля 2011

Вы получаете общее представление о классах, в которых вы нуждаетесь, затем вы пишете тест, смотрите, как он проваливается, проходит и повторяется. Вы можете понять, что вам нужно перемещать методы или создавать новые классы, но это часть процесса.

Смотрите это видео для демонстрации в реальном времени. http://katas.softwarecraftsmanship.org/?p=80

1 голос
/ 06 февраля 2011

Суть в том, что когда вы пишете тест, он провалится. Вам не нужны модели данных или интерфейсы для написания неудачного теста.

http://jamesshore.com/Blog/Red-Green-Refactor.html

...