Огурец: Как лучше всего цитировать / не цитировать аргументы? - PullRequest
2 голосов
/ 11 августа 2011

В Cucumber вы определяете шаги, которые определяют ваш синтаксис BDD;например, ваш тест может иметь:

When I navigate to step 3

, а затем вы можете определить шаг:

When /^I navigate to step (\d+)$/ do |step_number|
   # navigate to step ${step_number}
end

Теперь все вышеперечисленное прекрасно работает как есть (или, по крайней мере, ядумаю, что это так).Однако вы также можете сделать это вместо этого:

When I navigate to step "3"

с регулярным выражением:

When /^I navigate to step "(\d+)"$/ do |step_number|

В «Книге RSpec: разработка на основе поведения с Rspec, Cucmber и Friends»,Автор Дэвид Челимский пишет: «Есть два общих стиля для шагов ... Обсудите плюсы и минусы с вашей командой».В моей команде несколько человек уже начали использовать кавычки, но это делает вызов шагов вручную более неуклюжим, потому что вы должны избегать кавычек в именах шагов шага (когда сами эти имена шагов заключены в кавычки).Тем не менее, наличие кавычек делает более ясным, где переменные находятся в тексте огурца.

Итак, что меня интересует, так это: существует ли какой-то консенсус сообщества относительно того, какой здесь «правильный» стиль?Или не хватает этого ...

  • Кто-нибудь когда-либо делал сравнение выгод между двумя стилями?
  • Кто-нибудь широко использовал оба стиля?

ИдеальноЯ хотел бы узнать как можно больше до мы напишем миллион тестов с "неправильным" стилем; -)

1 Ответ

3 голосов
/ 11 августа 2011

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

Например, я широко использовал оба стиля в проекте, в котором не было «должно быть так» в этом вопросе. Я думаю, что больше не использовал стиль "(\ d +)", потому что, как вы сказали:

наличие кавычек делает более ясным, где переменные находятся в

Что касается построения шагов, которые состоят из других шагов, я обычно делал:

Then /^I fill in my profile information with: "(.*)\/(.*)\/(.*)"$/ do |display_name, picture, description|
    And %{I fill in "user_display_name" with "#{display}"}
    And %{attach the file "#{picture}" to "user_picture"}
    And %{I fill in "user_short_description" with "#{description}"}
end

Надеюсь, это поможет, я открыт для обсуждения:)

...