Желтый цвет в TDD - PullRequest
       16

Желтый цвет в TDD

2 голосов
/ 22 мая 2011

Я только начал использовать TDD, и в моем случае это очень полезно. Единственное, что меня беспокоит, это то, что я не вижу способа пометить ваш тест как «подлежащий выполнению». Когда я разрабатываю приложение, я иногда придумываю новые тесты, которые оно должно пройти в будущем, когда я закончу с текущими изменениями, поэтому я пишу эти тесты и, конечно, они терпят неудачу, поскольку такой функциональности пока нет. Но так как я не собираюсь «исправлять» их, пока не закончу текущую часть, я бы хотел видеть что-то вроде желтого состояния (между красным и зеленым), так как я хотел бы получить красный цвет только для неудачных тестов и иметь возможность пометить TODO тесты с другим цветом. Есть ли практика, которая может мне здесь помочь? Я могу написать такие тесты в какой-то список, но в этом случае это будет удвоить работу, как я скажу то же самое сначала в словах, а затем в коде.

РЕДАКТИРОВАТЬ: Я только что обнаружил, что todo тесты в стандартной модульной структуре Perl, может быть, есть что-то подобное в Java?

Ответы [ 4 ]

2 голосов
/ 22 мая 2011

И MSTest, и NUnit, например, поддерживают состояние Inconclusive, но от вашего Runner зависит, будут ли они отображаться в пользовательском интерфейсе желтым цветом.JUnit также может иметь поддержку для неокончательных.

В TDD Кента Бека по Примеру он предлагает написать список тестов для записи в блокноте, также называемый «список тестов».Затем вы работаете только с одним тестом за раз и проходите по списку в порядке, который имеет для вас смысл.Это хороший подход, потому что вы можете понять, что некоторые тесты в вашем списке могут оказаться ненужными после того, как вы закончите работу над тестом.По сути, вы пишете только те тесты (и код), которые вам нужны.

Чтобы сделать то, что вы предлагаете, вы должны написать свой список тестов в коде, назвав методы тестирования соответственно со всеми обычными атрибутами, но тело для каждого теста будет «Assert.Inconclusive ()»

Я делал это в прошлом, но моим тестовым телом было бы «Assert.Fail ()».Вопрос в том, как вы работаете - я не проверю свои изменения, пока не пройдут все тесты.Поскольку утверждение «неокончательный» отличается от утверждения «сбой», его можно использовать как средство регистрации кода для совместного использования изменений, не нарушая сборку для всей вашей команды (в зависимости от конфигурации сервера сборки и согласованного командного процесса).

1 голос
/ 22 мая 2011

В JUnit вы можете использовать аннотацию @Ignore в тесте, чтобы среда пропускала ее во время выполнения. Предполагая, что у вас есть список тестов, вы можете просто поместить их в тест следующим образом:

@Ignore @Test public void somethingShouldHappenUnderThisCircumstance() {}</p> <p>@Ignore @Test public void somethingShouldHappenUnderThatCircumstance() {}

Конечно, если вы не пометите их как тест, вам не нужно игнорировать их. Среды IDE, такие как IntelliJ, будут отмечать пропущенные тесты, чтобы они лучше выделялись.

1 голос
/ 22 мая 2011

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

0 голосов
/ 22 мая 2011

Совершенно хорошо - до тех пор, пока вы не прервете ход мыслей и не проведете эти новые тесты. Вы можете записать это в свой «список тестов» на листе бумаги ИЛИ написать пустые тестовые заглушки с хорошими именами и пометить их атрибутом Ignore («Impl pending»).

В графическом интерфейсе NUnit игнорируемые тесты отображаются желтым цветом, поэтому есть вероятность, что JUnit сделает то же самое. Вам понадобится соответствующая игнорируемая аннотация , чтобы украсить ваши тесты

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