Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在控制器规范中测试电子邮件是否已通过rspec2发送和传递?_Ruby On Rails_Rspec_Ruby On Rails 3.1_Rspec2_Rspec Rails - Fatal编程技术网

Ruby on rails 如何在控制器规范中测试电子邮件是否已通过rspec2发送和传递?

Ruby on rails 如何在控制器规范中测试电子邮件是否已通过rspec2发送和传递?,ruby-on-rails,rspec,ruby-on-rails-3.1,rspec2,rspec-rails,Ruby On Rails,Rspec,Ruby On Rails 3.1,Rspec2,Rspec Rails,我在控制器规格中测试我的视图。电子邮件也可以吗? 如果有的话,有人能给我举个例子吗 我目前正在进行集成测试: 我已经从测试注册和转换它的一些代码,这样我可以测试我的重置密码,但停留在电子邮件部分 describe "Reset Password" do describe "success" do it "should send the user reset password instructions" do lambda do visit res

我在控制器规格中测试我的视图。电子邮件也可以吗? 如果有的话,有人能给我举个例子吗

我目前正在进行集成测试: 我已经从测试注册和转换它的一些代码,这样我可以测试我的重置密码,但停留在电子邮件部分

describe "Reset Password" do

    describe "success" do

    it "should send the user reset password instructions" do

      lambda do
        visit reset_password_path
        fill_in "password_reset[email]",            :with => "mememe@gmail.com"      
       # click_button "password_reset_submit"
       # response.should render_template :js => "window.location = '#{temp_success_path}'"
     #  end.should change(User, :count)

    end
  end
end
end
我已经设置了注册和重置密码的电子邮件。成功注册后,会向用户发送一封电子邮件,欢迎他们访问该网站。密码重置时,向用户发送一封包含密码重置说明的电子邮件

密码控制器的一部分:

class PasswordsController < ApplicationController
  def new
  end

  def create
    @user = User.find_by_email(params[:password_reset][:email])
    @user.generate_and_store_password_reset_token && UserMailer.password_reset(@user).deliver if @user
    redirect_to root_url, :notice => "Email sent with password reset instructions."
  end
class UsersController < ApplicationController

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])     
    respond_to do |format|
      if @user.save 
        UserMailer.join_confirmation(@user).deliver
        format.js   { render :js => "window.location = '#{temp_success_path}'" }

      else

        format.html { render :new }  
        format.js   { render :form_errors }
      end
    end
  end


end
类密码控制器“已发送带有密码重置说明的电子邮件。”
结束
用户控制器:

class PasswordsController < ApplicationController
  def new
  end

  def create
    @user = User.find_by_email(params[:password_reset][:email])
    @user.generate_and_store_password_reset_token && UserMailer.password_reset(@user).deliver if @user
    redirect_to root_url, :notice => "Email sent with password reset instructions."
  end
class UsersController < ApplicationController

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])     
    respond_to do |format|
      if @user.save 
        UserMailer.join_confirmation(@user).deliver
        format.js   { render :js => "window.location = '#{temp_success_path}'" }

      else

        format.html { render :new }  
        format.js   { render :form_errors }
      end
    end
  end


end
class UsersController“window.location='{temp\u success\u path}'”
其他的
format.html{render:new}
format.js{render:form_errors}
结束
结束
结束
结束

您将找到测试电子邮件的好解释。

可能重复的