私はきゅうりにかなり慣れていません。ユーザーが重複するタグを作成しないことを確認するためのテストを作成しようとしています。したがって、次のように読み取る機能を作成しました。
Scenario: Analyst adds a duplicate privacy tag
Given I have a privacy tag called "Green"
When I try to create a tag called "Green"
Then I should be on the new privacy tag page
And I should see an error message for "Green"
私のステップは次のように定義されています。
Given /^I have a privacy tag called "(.*?)"$/ do |tag|
PrivacyTag.create(:content => tag)
end
When /^I try to create a tag called "(.*?)"$/ do |arg1|
visit new_privacy_tag_path
fill_in 'privacy_tag[content]', :with => arg1
click_button 'Create'
end
Then /^I should be on the new privacy tag page$/ do
new_privacy_tag_path
end
Then /^I should see an error message for "(.*?)"$/ do |arg1|
page.should have_selector('div', :class => 'alert alert-error') do |flash|
flash.should have_content fartknocker
end
end
奇妙なことに、これらのテストはすべて現在合格しています。アプリケーションで許可されている重複したプライバシータグを作成しようとして、プライバシータグのインデックスページが表示された場合、ユーザーはnew_privacy_tag_pathに戻りません。しかし、テストはまだ合格です。そして、Cucumberは、fartknockerと呼ばれる変数がどこにも定義されておらず、fartknockerという単語がページのどこにも表示されていないという事実にさえ目を光らせません。テストはまだ合格です。何が得られますか?