나는 Webrat을 사용하여 Sinatra 기반 응용 프로그램을위한 Cucumber 테스트를 작성하고 있습니다. 몇 가지 테스트를 위해 나는 다음과 같은 단계를 정의Webrat으로 테스트 할 때 쿠키를 처리하는 방법은 무엇입니까?
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
쿠키가
response.set_cookie(cookie_name, coockie_value)
을 만든 다음 때 사용자가보기에 검증 성공
도우미 방법을 통해 관리자 페이지에 액세스하려고 시도합니다.
def logged_in?
request.cookies[cookie_name] == cookie_value
end
Webrat는 쿠키를 저장하지 않는 것 같습니다. 테스트는 오류를보고하지 않지만 "logged_in?" 쿠키가 저장되지 않은 것처럼보기에서 항상 false입니다.
내가 잘못 했나요? 이것이 바로 Webrat의 작동 방식 일 경우 최상의 해결 방법은 무엇입니까?
Webrat의 고유 한 "브라우저"구현 또는 Selenium 백엔드를 사용하고 있습니까? 후자는 실제로 별도의 프로세스에서 응용 프로그램을 실행하므로 테스트 내에서 대부분의 Rails 상태에 액세스 할 수 없습니다. – emk
emk : 감사합니다. Selenium 백엔드에서 작동합니다! –