Ruby on Rails 2.3.8: функциональное тестирование: assert_redirect_ чтобы не найти действие? - PullRequest
0 голосов
/ 12 июля 2011

Вот такая ошибка:

NoMethodError: undefined method `dashboard_url' for #<AccountsController:0x105212680 @real_format=nil>

, а вот функция, которая генерирует ошибку (в строке assert_redirected_to: dashboard

def login_as_owner(login = SharedTest.user.login, password = SharedTest.user.password)
  old_controller = @controller
  @controller = SessionsController.new
  post(:create, :login => login, :password => password)
  @controller = AccountsController.new 
  assert_redirected_to :dashboard
  @controller = old_controller

end

Я переключаю контроллер, потому что мне нужночтобы можно было вызывать этот метод из любого функционального теста, поскольку сначала необходимо войти в систему всего приложения ... хотя я не уверен, правильно ли я это делаю.

Я запускал рейк-маршрутыи вот соответствующие маршруты

               root        /                              {:controller=>"accounts", :action=>"dashboard"}
  dashboard_account GET    /account/dashboard(.:format)   {:controller=>"accounts", :action=>"dashboard"}

1 Ответ

1 голос
/ 12 июля 2011

try

assert_redirected_to :dashboard_account

или явное указание URL

assert_redirected_to '/account/dashboard'
...