Хммм, похоже, сейчас это невозможно.
Процесс тестирования запускает новый экземпляр mongrel из командной строки (в Webrat::Selenium::ApplicationServers::Rails
) и поэтому не имеет доступа к переменной @controller
, которая была бы установлена в ActionController::Integration::Session.get
. Эта переменная @controller
используется assert_response.
Интересно, сколько было бы работы, чтобы запустить сервер Mongrel, используя fork
вместо system
(в Webrat::Selenium::ApplicationServers::Rails.start
). Может быть объединен с selenium.wait_for_page_to_load
, чтобы гарантировать, что тест ожидает, пока процесс сервера завершит ответ. Просто идея, я, вероятно, больше не буду в нее разбираться.
Для тех, кто использует webrat с musta, что-то подобное будет работать:
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
Ура,
Brian