Я читаю новую версию "Rails Tutorial" Майкла Хартла и, так как я очень люблю BDD с Cucumber, я обнаружил, что обеспокоен тем, на что автор указывает здесь: http://ruby.railstutorial.org/chapters/sign-in-sign-out?version=3.2#sec:rspec_custom_matchers
В двух словах главная проблема с Cucumber заключается в том, что невозможно СУХОЙ зависящий от реализации тест, такой как:
Then /^he should see an error message$/ do
page.should have_selector('div.alert.alert-error', text: 'Invalid')
end
написание пользовательских соответствий RSpec, например:
RSpec::Matchers.define :have_error_message do |message|
match do |page|
page.should have_selector('div.alert.alert-error', text: message)
end
end
Поскольку такой пользовательский сопоставитель должен быть помещен в spec / support / utilities.rb и может вызываться из интеграционных тестов RSpec, но не из определений шагов Cucumber.
Вы уверены / что вы думаете об этом?
Спасибо.