2015-12-26 7 views
0

Я пытаюсь лучше понять журнал сервера, чтобы улучшить свою тестовую среду. Для большинства из запроса я отправить на сервер я (почти) всегда получаю 200 сообщений следующим образом:Rails Testing - Ожидаемый ответ - <redirect>, но был <200>

Completed 200 OK in 410ms (Views: 403.0ms | ActiveRecord: 1.7ms) 

Этих (кажется,) триггер (ы) следующий сбой в моем тестировании при использовании метода assert_redirected_to:

Expected response to be a <redirect>, but was <200> 

Например, если я обновить свои модели «Пользователи» следующим образом в моем контроллере

def update 
    @user = User.find(params[:id]) 
    if @user.update_attributes(user_params) 
    flash[:success] = "Your profil has been updated" 
    redirect_to @user 
    end 
end 

Я хочу проверить переадресацию. Я использую:

test "friendly forwarding" do 
    get edit_user_path(@user) #user is a very basic fixture that I call in the test 
    log_in_as(@user) 
    assert_redirected_to edit_user_path(@user) 
    patch user_path(@user), user: { name: "Foo Bar", email: "[email protected] } 
    assert_redirected_to @user #line that makes the test fails 
end 

Что не так? Должен ли я использовать что-то иное, чем метод assert_redirected_to, или у меня есть проблема с моим кодом, который не должен отправлять обратно 200 сообщений?

ответ

0
def update 
    @user = User.find(params[:id]) 
    if @user.update_attributes(user_params) 
    flash[:success] = "Your profil has been updated" 
    redirect_to @user 
    end 
    # right here is where the 200 comes in. 
end 

Вы оказываете частичную, когда обновление не удается, таким образом, ответ 200. Как правило, метод обновления будет отображать ошибки проверки и визуализацию формы редактирования в данный момент. См. Здесь: Successful and unsuccessful updates из руководства по рельсам.

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