###目的
https://railstutorial.jp/chapters/account_activation?version=5.1#cha-account_activation
から
リスト 11.21: テストのドメインホストを設定する
のところでドメインホスト名を変更してもテストが通る理由が知りたいです。
それに加え、どこでテストのドメインホスト名はテストで使用されているのかを詳しく知りたいです。
###調べたこと
https://railstutorial.jp/chapters/account_activation?version=5.1#cha-account_activation
現在railsチュートリアル11章目です。
リスト 11.21: テストのドメインホストを設定する
にて
テストファイル内のドメイン名を正しく設定する必要がありますと記載されているので
test用にドメインホスト名を'example.com'に設定するのが正しい設定だと思ったのですが
ドメインホスト名を変更してもテストが通ってしまいます。
rails
1 #ドメイン名変更前 2 config.action_mailer.default_url_options = { host: 'example.com' }
rails
1 #ドメイン名変更後 2 config.action_mailer.default_url_options = { host: 'hogehoge.com' } 3
上記からドメインホスト名を指定している文をコメントアウトしてもテストは通るような気がしたのですが以下のエラーが出力されのでドメイン名は関係なく、default_url_optionsが設定されているかどうかのテストをしている用に思いました。(リスト 11.20)
ActionView::Template::Error: Missing host to link to! Please provid
e the :host parameter, set default_url_options[:host], or set :only_path to true
app/views/user_mailer/account_activation.html.erb:9:in _app_views_user_mailer_account_activ ation_html_erb___1475559900087753929_47145613750960' app/mailers/user_mailer.rb:5:in
account_activation'
test/mailers/user_mailer_test.rb:9:in `block in class:UserMailerTest'
rails
1#リスト 11.20 test/mailers/user_mailer_test.rb 2require 'test_helper' 3 4class UserMailerTest < ActionMailer::TestCase 5 6 test "account_activation" do 7 user = users(:michael) 8 user.activation_token = User.new_token 9 mail = UserMailer.account_activation(user) 10 assert_equal "Account activation", mail.subject 11 assert_equal [user.email], mail.to 12 assert_equal ["noreply@example.com"], mail.from 13 assert_match user.name, mail.body.encoded 14 assert_match user.activation_token, mail.body.encoded 15 assert_match CGI.escape(user.email), mail.body.encoded 16 end 17end
しかしリスト 11.20を見てもどこでdefault_url_optionsが設定されているかどうかのテストをしているのかわかりませんでした。
エラーからなんとなく以下のテストでdefault_url_optionsが設定を見ているような気がするのですがよくわかりませんでした。
rails
1assert_equal "Account activation", mail.subject
どなたか助言をしてくださいませんか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/14 09:47