Rails功能最小的控制器操作恰好发送电子邮件

时间:2014-02-05 14:22:04

标签: ruby-on-rails minitest testunit

当我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

如何断言浏览用户被正确地重定向到(用户)显示操作?

1 个答案:

答案 0 :(得分:2)

将其更改为assert_redirected_to

 test 'should render show template' do
    post :create, user: {:email => 'test@example.com'}
    assert_redirected_to(user_path(assigns(:user))
 end