2009-10-14 5 views
0

Я пытаюсь создать простой тест входа, но не могу пройти мимо follow_redirect. он говорит: TypeError: не может преобразовать символ в строку, когда он встречает «follow_redirect». Имеет ли это какое-либо отношение к тому факту, что мы используем https для процесса входа в систему? я просто хочу утверждать, что пользователь может войти в систему и перенаправляется на какой-либо другой контроллер на основе типа пользователя, но не может пройти мимо первого перенаправления.тестирование процесса входа в систему в rails

В ответ на замечание, прося ошибки, вот соответствующая часть:

Код:

19 def test_login 
20  params = {:email => 'normaluser.com', :password => 'password'} 
21  post :login, params 
22  puts "#{@response.inspect}" 
23  assert_response :redirect 
24  #assert_redirected_to '/user/login?email=normaluser.com&password=password' 
25  follow_redirect 
26  assert_response :success 

Ошибка я получаю:

TypeError: can't convert Symbol into String 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/test_process.rb:413:in `delete' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/test_process.rb:413:in `follow_redirect_without_deprecation' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/deprecation.rb:94:in `send' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/deprecation.rb:94:in `follow_redirect' 
user_controller_test.rb:25:in `test_login' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/testing/setup_and_teardown.rb:33:in `__send__' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/testing/setup_and_teardown.rb:33:in `run' 
+0

Не могли бы вы предоставить нам сообщение об ошибке? – Lichtamberg

+0

обменивается сообщением об ошибке – umar

ответ

0

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

Моя рекомендация: используйте огурец для всего вашего стека и rspec, чтобы тщательно протестировать ваши модели.

+0

, возможно, вы правы, и я буду исследовать тестирование огурца, но сейчас я хочу узнать, почему я получаю сообщения об ошибках в таких простых 4 строках. в основном я не ожидал перенаправления на себя, но я его получаю, а затем, когда я пытаюсь выполнить перенаправление, я получаю сообщение об ошибке, поэтому не уверен, что мне нужно сделать, чтобы он работал. https имеет какое-либо отношение к нему, или follow_redirect больше не работает в rails 2.1.2? – umar

0

Используйте эти ссылки. Они могут помочь вам определить точный способ тестирования входа. Link1, Link 2, Link 3

Смежные вопросы