問題が発生しました。devise で ruby on rails を使用しており、アプリケーションのフローをカピバラでテストしたいと考えています。
メール内のリンクをクリックしたとき
current_email.click_link 'text'
それはプロトコルエラーを与えます、これをデバッグすると、カピバラはデバイスが電子メールを作成するために使用するホストを変更するようです.
だから私はこのテストを書いた:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rspec'
require 'capybara-webkit'
require 'capybara/email/rspec'
require 'headless'
describe 'capybara and devise are broken', type: :request do
it 'action_mailer default url should change when visiting a page' do
initialValue = X::Application.config.action_mailer.default_url_options[:host]
visit "/"
initialValue.should_not equal X::Application.config.action_mailer.default_url_options[:host]
end
it 'action_mailer default url should change when clicking a link' do
initialValue = X::Application.config.action_mailer.default_url_options[:host]
visit "/"
X::Application.config.action_mailer.default_url_options[:host] = initialValue
click_link "Can't access?"
initialValue.should_not equal X::Application.config.action_mailer.default_url_options[:host]
end
it 'action_mailer default url should change when clicking a button' do
initialValue = X::Application.config.action_mailer.default_url_options[:host]
visit "/"
X::Application.config.action_mailer.default_url_options[:host] = initialValue
click_button "Sign in"
initialValue.should_not equal X::Application.config.action_mailer.default_url_options[:host]
end
end
これらのテストはすべて成功し、何が間違っているのかわかりません。
RoR を使用して 3 週目になるので、私が見逃しているのは明らかなことでしょうか?
Gem バージョン: gem 'rails', '3.2.7' gem 'capybara', require: false gem 'capybara-webkit', '= 0.10.1', require: false gem 'capybara-screenshot' gem 'capybara-email' gem 'devise', '~> 2.0.0' gem 'devise_invitable', '~> 1.0.0'