Может ли модель FD Fake It ('Til You Make It') существовать без триангуляции в реальном времени? - PullRequest
4 голосов
/ 12 декабря 2010

Я думал, что однажды «подделал» мою реализацию, чтобы сделать тестовый проход, до какого времени мне следует оставить эту поддельную реализацию , не меняя ее при реализации РЕАЛЬНО.

Если TDDо КРАСНО-ЗЕЛЁНО-РЕФАКТОРНОМ;и если я подхожу к ЗЕЛЕНОМУ,

  • , я должен реализовать очевидную реализацию сразу после этого?

  • ИЛИ я должен ждать, пока новый тест не вызовет эту фальшивую реализацию и даст сбой, потому что она не ведет себя так, как ожидалось?(По моему мнению это звучит как триангуляция )

Так что мой вопрос:

Может Подделать Это ('Пока Ты Сделаешь Это!)существуют ли тестовые схемы без (преднамеренной или непреднамеренной) триангуляции?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 13 декабря 2010

Вам следует подождать (но не долго!) Нового неудачного теста.В тот момент, когда вы сделали свой тест зеленым с фальшивкой, у вас есть именно то, что вам нужно: вы знаете, что пытаетесь разработать, вы знаете, что у вас есть небольшое покрытие для модульного теста, и вы знаетечто этот тест легко подделатьИ ты знаешь, что подделал это.

Таким образом, это момент, чтобы выяснить еще один тест, который текущий фальшивка не пройдет.Верните свой бар красному цвету - и теперь вам нужно принять другое решение: подделать его больше или исправить?Если поддерживать фальшивку проще, подделайте ее еще раз и повторите.Но если проще, наконец, написать код, который вам нужен: напишите его.Вы будете писать это безопасно, с достаточным количеством тестового покрытия, чтобы чувствовать себя хорошо об этом.Отлично!

1 голос
/ 13 декабря 2010

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

Конечно, это приводит к тому, когдаЯ на самом деле реализую свои интерфейсы и, что более важно, откуда я знаю, что эта чертова штука работает.Вот тут-то и вступают интеграционные тесты или тесты BDD. Когда я пишу конкретную функцию или историю, я пытаюсь описать тест BDD, проходящий через систему, эти тесты должны использовать все реальные реализации вплоть до любых внешних границ.Я стараюсь использовать тот же провод IoC, что и в реальном приложении.После того, как этот тест будет выделен и станет красным, вы можете приступить к тестированию модулей и подключить их вместе.Когда вы закончите, ваш тест BDD должен пройти.

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

Я играл с StoryQ для тестов BDD и считаю его простым в использовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...