私はマイケル・ハートルで「Railsのチュートリアル」の新バージョンを読んでいると、私はキュウリとBDDにかなり好きなんだから、私は著者はここで指摘かについて自分自身を懸念が見つかりました:いくつかの単語でhttp://ruby.railstutorial.org/chapters/sign-in-sign-out?version=3.2#sec:rspec_custom_matchersキュウリのRSpecカスタムマッチャーをDRY実装依存のテストにすることは可能ですか?
こうしたカスタム照合がなければならないため
RSpec::Matchers.define :have_error_message do |message|
match do |page|
page.should have_selector('div.alert.alert-error', text: message)
end
end
:このようなRSpecのカスタムマッチャを書く
Then /^he should see an error message$/ do
page.should have_selector('div.alert.alert-error', text: 'Invalid')
end
:キュウリの主な面倒は、このような実装依存のテストを乾燥することは不可能だということですspec/support/utilities.rbを入れ、RSpec統合テストから呼び出すことができますが、キュウリのステップ定義から呼び出すことはできません。
あなたはそれについてどう思っていますか?
ありがとうございます。
- あなたは 'have_error_message'マッチャーを共有したいですあなたのキュウリのステップとあなたのRSpecスペックの間に?あるいは、キュウリのテストスイート内で重複を減らそうとしていますか? –
最初の目的は、キュウリのテストスイート内で実装依存のメソッドを集約して、重複を減らすことですが、 "have_error_message"などのRspecマッチャを再利用することも可能であれば、DRYer! – Darme