2010-01-11 2 views
0

셀레늄을 사용하여 weird와 함께 작동하는 assert_response를 얻는 방법을 아는 사람이 있습니까? '나는 그것이 내가 부족 것을 뭔가 바보 확신셀레늄 모드에서 weert와 assert_response가 작동하지 않음

==> Waiting for Selenium RC server on port 4444... Ready! 
==> Waiting for rails application server on port 3001... Ready! 
E 

    1) Error: 
test_basic_page_load(UserCrudTest): 
NoMethodError: undefined method `response_code' for nil:NilClass 
    /test/integration/user_crud_test.rb:11:in `test_basic_page_load' 

Finished in 12.269964 seconds. 

,하지만 난 그냥 돈 : 여기

def test_basic_page_load 
    visit root_path 
    click_link "register" 
    assert_response 200 
end 

오류입니다 : 내가 여기
NoMethodError: undefined method `response_code' for nil:NilClass 

가 계속하는 것은 내 테스트입니다 그것을 보아라. .. 어떤 생각?

답변

0

흠, 지금은 불가능한 것처럼 보입니다.

테스트 프로세스는 명령 줄 (Webrat::Selenium::ApplicationServers::Rails)에서 새로운 mongrel 인스턴스를 시작하므로 ActionController::Integration::Session.get으로 설정되는 @controller 변수에 액세스 할 수 없습니다. 이 @controller 변수는 assert_response에 의해 사용됩니다.

system (Webrat::Selenium::ApplicationServers::Rails.start) 대신 fork을 사용하여 잡종 서버를 시작하는 것이 얼마나 효과가 있는지 궁금합니다. 테스트가 서버 프로세스가 응답을 완료하기를 기다리는 지 확인하기 위해 selenium.wait_for_page_to_load과 결합 될 수 있습니다. 아이디어 만 있다면 더 이상 조사하지 않을 것입니다. 했어야와 webrat를 사용하는 사람들을위한

, 이런 일이 계속 작동합니다

setup do 
    fill_in :login, :with => Factory.next(:login) 
    fill_in :email, :with => Factory.next(:email) 
    fill_in "Password", :with => 'asdf' 
    fill_in "Password confirmation", :with => 'asdf' 
    click_button :Register 
    selenium.wait_for_page_to_load(10) 
end 
should_create :user 

건배, 브라이언