Webratを使用してSinatraベースのアプリケーションのCucumberテストを作成しています。一部のテストでは、次のようなシナリオを実装する必要があります
Given I am logged in as admin
When I am visiting "/"
Then I should see "Settings"
私はこのようなステップを定義します:
Given /^I am logged in as "(.+)"$/ do |user|
visit "/login"
fill_in "login", :with => user
fill_in "password", :with => "123456"
click_button "Login"
end
When /^I am viewing "(.+)"$/ do |url|
visit(url)
end
Then /^I should see "(.+)"$/ do |text|
response_body.should =~ /#{text}/
end
成功するとCookieが作成されます
response.set_cookie(cookie_name, coockie_value)
次に、ユーザーがヘルパーメソッドを介して管理ページにアクセスしようとしたときにビューで確認されます。
def logged_in?
request.cookies[cookie_name] == cookie_value
end
そして、WebratはCookieを保存していないようです。テストではエラーは報告されませんが、「logged_in?」Cookieが保存されなかったように、ビュー内は常にfalseです。
私は何か間違ったことをしていますか?これがWebratの動作方法である場合、最善の回避策は何ですか?