Функциональный мини-тест Rails для действий контроллера при отправке электронной почты
Когда я assert_template
после вызова действия, которое также отправляет электронное письмо, я получаю информацию о шаблоне электронной почты вместо той, которая отображается в браузере.
Действие контроллера
def create
@user = User.new(params)
if @user.save
respond_to do |format|
format.html { redirect_to user_path(@user), :notice => "User Created" }
end
end
end
@user.save
Метод имеет обратный вызов, который отправляет пользователю подтверждение по электронной почте.
Тест
test 'should render show template' do
post :create, user: {:email => 'test@example.com'}
assert_template :show # Here I'm getting the email template that is being sent on after save callback
end
Как я могу утверждать, что просматривающий пользователь правильно перенаправлен на (пользовательское) действие show?
1 ответ
Решение
Измените это на assert_redirected_to
test 'should render show template' do
post :create, user: {:email => 'test@example.com'}
assert_redirected_to(user_path(assigns(:user))
end