2009-08-04 5 views
0

Ниже мой функциональный тест кодСомнение в Functional Testing

Защиту test_should_create_county

assert_difference('County.count') do 
    post :create, :county => {:name=>"myname",:description=>"mydesc",:region_id=>"3" } 
end 
assert_redirected_to county_path(assigns(:county)) 

конец

конец

И сообщение об ошибке я получил это

29) Неудача: test_should_create_county (CountiesCon trollerTest) [/test/functional/counties_controller_test.rb:16]: «County.count» не изменился на 1. < 3> ожидается, но был < 2>.

Пожалуйста, помогите

- Karthik.k Mobile - + 91-9894991640

+2

вы должны прочитать о том, как использовать форматирование кода StackOverflow. – Indy9000

ответ

0

Это выглядит как объект Страна не создается в create действия. Недостаточно информации, чтобы определить причину, но вот несколько общих случаев (в порядке наиболее распространенных).

  • проверка терпит неудачу на модели Страна
  • аутентификации или авторизации, которые инициированы
  • некоторые другие перенаправлением через перед фильтром (для HTTPS или доменное имя изменения)

Посмотрите на ваш валидации в модели страны, имеет ли параметр страны: страна, указанная в тесте, действительную модель? Если нет, я рекомендую using factories для генерации допустимых атрибутов модели.

Если проверка не является проблемой, посмотрите на контроллер перед фильтрами, чтобы убедиться, что перенаправления там не происходит.

Возможно, вы захотите переместить assert_redirect в блок assert_difference, который может дать более наглядную ошибку.