Rails Rspec No Route Error, когда маршрут явно существует - PullRequest
0 голосов
/ 26 марта 2012

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

Однако последний из следующих тестов не пройден:

 describe "success" do
   before(:each) do
    @attr = { :username => "woweee123",
              :email => "email@mail.com", 
              :password => "password123",
              :password_confirmation => "password123"}
    end

    it "should create the user" do
          lambda do 
             post :create, :user => @attr
          end.should change(User, :count)
     end

     it "should redirect to a user show page after creation" do
         lambda do
              post :create, :user => @attr
         end.should redirect_to(user_path(assigns(:user)))
     end


   end

Неудачный тест: Не найдено ни одного маршрута {: action => «show»,: controller => «users»

Но когда я создаю пользователя вручную (на локальном хосте), редирект, очевидно, работает. Почему это терпит неудачу?

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Для тех, кто заинтересован, ответ заключается в том, что мне пришлось изменить тест, чтобы он выглядел следующим образом:

 it "should redirect to a user show page after creation" do
     post :create, :user => @attr
     response.should redirect_to(user_path(assigns(:user)))
 end

Это работает.

0 голосов
/ 26 марта 2012

Я бы проверил, если

assigns(@user).new_record?

больше не соответствует действительности после публикации.Кажется, что у вас нет идентификатора в вашем тесте.Может быть, какая-то проверка не удалась?

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