だから私はCucumberでBDDをやっていて、データベースからチェックボックスが入力されたフォームを持っています。チェックボックスのラベルにはハイパーリンクが含まれています。これまでのところ、あまりエキゾチックではありません(これはHAMLであり、Erbではありませんが、Railsの人なら誰でも十分に読めるはずです):
I would like my donation to support:
%br
- for podcast in @podcasts
= check_box_tag "donation[podcast_ids][]", podcast.id, true
= donation.label "donation[podcast_ids][]", link_to(podcast.name, podcast.url), :value => podcast.id
%br
問題は、Cucumberの機能で、チェックボックスを見つけてチェックする方法がわからないことです。物語の関連部分はこれです:
Scenario: Happy path
Given I am on the home page
When I fill in "My email address" with "john@example.org"
# Skipped for brevity...
And I check the "Escape Pod" podcast
And I check the "PodCastle" podcast
And I press "I'm ready!"
Then I should see "Thank you!"
And there should be 2 podcast donation records
裸のwebrat_steps.rbファイルを使用している場合、次のエラーが発生します。
Could not find field: "Escape Pod" (Webrat::NotFoundError)
link_to()
これは、「脱出ポッド」を実際のWebサイトへのハイパーリンクにするために使用している方法によるものだと確信しています。link_to
しかし、Cucumberのステップから簡単にアクセスすることはできません。また、ステップで大量のハイパーリンクコードをまとめる以外に、Webratを右のチェックボックスに向ける合理的な方法を理解できません(非常に脆弱になります)。
この時点で私のBDDは停止しています。テストが難しいという理由だけでリンクを削除したくありません。そして、それはテストするのが難しいことではないように感じます。Webratは、checks()
メソッドに渡すことができるものを制限しているだけです。誰かがこれに対するエレガントな答えを提案できますか?