Я использую rspec/capybara/devise для проведения тестирования интеграции в приложении. Одной из особенностей приложения является постоянно заполняемая "Регистрация учетной записи" с использованием функции подтверждения (т.е. зарегистрируйтесь - получите подтверждение по электронной почте - нажмите на ссылку - учетная запись будет проверена).
require 'spec_helper'
describe "User Authentication" do
describe "New user" do
before(:each) do
@user = Factory.build(:user)
end
it "can confirm account by clicking on confirmation link" do
visit root_path
click_link "Register"
page.should have_content "Register for an account"
fill_in "user_email", :with => @user.email
fill_in "user_password", :with => @user.password
fill_in "user_password_confirmation", :with => @user.password
fill_in "user_first_name", :with => @user.first_name
fill_in "user_last_name", :with => @user.last_name
fill_in "user_city", :with => @user.city
fill_in "user_province", :with => @user.province
fill_in "user_country", :with => @user.country
fill_in "user_expertise", :with => @user.expertise
choose "user_experience_professional"
click_button "Go!"
last_email.to.should include(@user.email)
end
end
end
Вот мои помощники:
module MailerMacros
def last_email
ActionMailer::Base.deliveries.last
end
end
Подтверждающая ссылка находится в созданном HTML-письме. Было бы замечательно иметь возможность сделать что-то вроде этого (при условии, что "Подтвердить мою учетную запись" ) является ссылкой на проверку учетной записи.
last_email.body.find_link("Confirm My Account").click_link
Есть ли у кого-нибудь какие-либо предложения по определению ссылок в электронном письме, которое может войти в request_spec?
Спасибо