TDD / BDD, в частности, для приложения Rails - PullRequest
4 голосов
/ 02 ноября 2009

Насколько гранулярным следует пользоваться при использовании методов TDD / BDD для разработки приложения? В частности, в отношении приложения Rails.

Вы бы протестировали каждое поле индивидуально, а затем правильно перенесли бы миграцию? Таким образом, каждое поле будет иметь свою собственную миграцию? Что бы вы на самом деле проверили, чтобы убедиться, что поле их?

Я действительно пытаюсь обернуть голову вокруг того, с чего начать и как детализировать. Я начинаю и просто замираю, потому что не знаю, как проверить каждую мелочь.

Большинство примеров, которые я видел, используют валидацию в качестве примера. Я знаю, что до этого было написано намного больше кода, и я просто не знаю, как проверить самые простые вещи, такие как «должно иметь поле имени».

Любая помощь очень ценится.

СПАСИБО!

Ответы [ 2 ]

1 голос
/ 02 ноября 2009

Я бы не стал сверлить так далеко вниз. На самом деле, я обычно не тестирую свои миграции, и, конечно, не стоит тратить ваше время (в целом) на тестирование геттеров и сеттеров. Придерживайтесь тестов, которые учат вас системе и выражают нетривиальные функциональные требования кода.

Что касается того, с чего начать: выберите требование, которое вы знаете, как тестировать - одно без внешних зависимостей, другое, где путь абсолютно ясен. Напишите тест (ы), чтобы описать желаемое поведение, реализовать его и реорганизовать код, чтобы удалить все уродства, которые вы, возможно, добавили во время реализации. После того, как вы сделали это для нескольких функций в списке, вы, вероятно, обнаружите, что некоторые из нечетких функций становятся в центре внимания, потому что вы создали необходимые им строительные блоки / зависимости.

Хорошая книга, в которой более подробно рассматриваются методы тестирования, чем AWDR или Rails Way - Книга RSpec , a бета-версия которого доступна в электронном виде.

1 голос
/ 02 ноября 2009

Используете ли вы какие-либо инструменты для TDD / BDD, такие как Огурец ?

У них есть хорошая информация о , использующем огурец с Rails .

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

...