Я проверяю свои взгляды в спецификациях контроллера. Это возможно и с электронной почтой?
Если так, может кто-нибудь показать мне пример?
В настоящее время я работаю над интеграционными тестами:
Я взял некоторый код из проверки на регистрацию и преобразовал его, чтобы я мог проверить свой пароль сброса, но застрял в части электронной почты.
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