Сомнение в функциональном тестировании - PullRequest
0 голосов
/ 04 августа 2009

Ниже приведен мой код функционального теста

def 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 (CountiesControllerTest) [/test/functional/counties_controller_test.rb:16]: "County.count" не изменился на 1. <3> ожидалось, но было <2>.

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

- Karthik.k Мобильный - + 91-9894991640

1 Ответ

0 голосов
/ 04 августа 2009

Похоже, что объект Country не создается в действии create. Там недостаточно представлено, чтобы определить причину, но вот несколько распространенных случаев (в порядке наиболее распространенных).

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...