огурец step_definitions Q на стиль / подход на я должен видеть - PullRequest
0 голосов
/ 04 октября 2011

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

Итак, у меня есть два следующих шага.По своей наивности я думал, что смогу использовать '! Find_link (...)'.
В конце я решил использовать исключения.Я хотел бы получить обратную связь по двум аспектам: 1. подход, который я использовал при использовании исключений внутри step_definition 2. имеет ли смысл ожидать явного поиска ссылок на отображаемой странице?

КакЯ закончил работу вчера вечером, я не мог не подумать: «Почему я просто не использовал: я не должен видеть« Зарегистрироваться »?»и этим утром меня осенило, что «Зарегистрироваться» можно включить в абзац где-то на странице.

Вот шаги, спасибо заранее ...

Then /^I should see link: ?"([^"]*)"$/ do |link|
    find_link("#{link}")
end

Then /^I should not see link: ?"([^"]*)"$/ do |link|
#    !find_link("#{link}") - commented out because it won't fail if link is present
    begin
          find_link("#{link}")
      raise FindException
    rescue Capybara::ElementNotFound
    end
end

1 Ответ

0 голосов
/ 04 октября 2011

Определение определений шага «Тогда» всегда должно содержать утверждение, например, должно при использовании RSpec или assert при использовании Test :: Unit.

Так что если хотитеВы хотите убедиться, что определенного URL-адреса нет, лучше сделать:

should_not have_link(link)

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

Then I should not see a sign-up option

И в определении шага вместо проверки URL вы можете проверить ссылку с определенным классом:

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