前提・実現したいこと
RailsでWebサービスを作っています。
Mailerのテストがうまく通ってくれません。
このあたりの実装は基本的にRailsチュートリアルを真似てやっているのですが。。。
ソースコード、テスト結果のコードは下述いたします。
なぜ通らないのかを教えていただきたいです。
程度の低い質問でしたら申し訳ございません。
また、質問に必要な情報等に不足があれば、お手数ですがご指摘いただければ、追記いたします。
よろしくお願いいたします。
###テストのエラーコード
FAIL["test_account_activation", #<Minitest::Reporters::Suite:0x000055d95a839fa8 @name="UserMailerTest">, 0.11997096299955956] test_account_activation#UserMailerTest (0.12s) Expected /Michael\ Example/ to match # encoding: US-ASCII "\r\n----==_mimepart_60cc6161ea996_22f32aecabeb595c22cf\r\nContent-Type: text/plain;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: base64\r\n\r\nSGVsbG8gTWljaGFlbCBFeGFtcGxlLA0KDQpXZWxjb21lIHRvIElOVEUhIENs\r\naWNrIG9uIHRoZSBsaW5rIGJlbG93IHRvIGFjdGl2YXRlIHlvdXIgYWNjb3Vu\r\ndC4NCklOVEXjg5jjgojjgYbjgZPjgZ3vvIHkuIvjga7jg6rjg7Pjgq/jgpLj\r\ngq/jg6rjg4Pjgq/jgZfjgabjgIHjgqLjgqvjgqbjg7Pjg4jjgpLmnInlirnl\r\njJbjgZfjgabjgY/jgaDjgZXjgYTjgIINCg0KaHR0cDovL2dtYWlsLmNvbS9h\r\nY2NvdW50X2FjdGl2YXRpb25zL055VmpzUHlOTGZ4TXZpcUNqTGVOeHcvZWRp\r\ndD9lbWFpbD1taWNoYWVsJTQwZXhhbXBsZS5jb20NCg0KDQo=\r\n\r\n----==_mimepart_60cc6161ea996_22f32aecabeb595c22cf\r\nContent-Type: text/html;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: base64\r\n\r\nPCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEg\r\naHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7\r\nIGNoYXJzZXQ9dXRmLTgiIC8+DQogICAgPHN0eWxlPg0KICAgICAgLyogRW1h\r\naWwgc3R5bGVzIG5lZWQgdG8gYmUgaW5saW5lICovDQogICAgPC9zdHlsZT4N\r\nCiAgPC9oZWFkPg0KDQogIDxib2R5Pg0KICAgIDxoMT5JTlRFPC9oMT4NCg0K\r\nPHA+SGVsbG8gTWljaGFlbCBFeGFtcGxlPC9wPg0KDQo8cD5XZWxjb21lIHRv\r\nIElOVEUhIENsaWNrIG9uIHRoZSBsaW5rIGJlbG93IHRvIGFjdGl2YXRlIHlv\r\ndXIgYWNjb3VudC48L3A+DQo8cD5JTlRF44G444KI44GG44GT44Gd77yB5LiL\r\n44Gu44Oq44Oz44Kv44KS44Kv44Oq44OD44Kv44GX44Gm44CB44Ki44Kr44Km\r\n44Oz44OI44KS5pyJ5Yq55YyW44GX44Gm44GP44Gg44GV44GE44CCPC9wPg0K\r\nDQo8YSBocmVmPSJodHRwOi8vZ21haWwuY29tL2FjY291bnRfYWN0aXZhdGlv\r\nbnMvTnlWanNQeU5MZnhNdmlxQ2pMZU54dy9lZGl0P2VtYWlsPW1pY2hhZWwl\r\nNDBleGFtcGxlLmNvbSI+QWN0aXZhdGUgfCDmnInlirnljJY8L2E+DQogIDwv\r\nYm9keT4NCjwvaHRtbD4NCg==\r\n\r\n----==_mimepart_60cc6161ea996_22f32aecabeb595c22cf--\r\n". test/mailers/user_mailer_test.rb:11:in `block in <class:UserMailerTest>'
該当のソースコード
ruby
1[user_mailer_test.rb] 2require 'test_helper' 3 4class UserMailerTest < ActionMailer::TestCase 5 test "account_activation" do 6 user = users(:michael) 7 user.activation_token = User.new_token 8 mail = UserMailer.account_activation(user) 9 assert_equal "Account activation | アカウント認証", mail.subject 10 assert_equal [user.email], mail.to 11 assert_equal ["inteofficial@gmail.com"], mail.from 12 assert_match user.name, mail.body.encoded //ここで引っかかっています。 13 assert_match user.activation_token, mail.body.encoded 14 assert_match CGI.escape(user.email), mail.body.encoded 15 end
ruby
1class UserMailer < ApplicationMailer 2 3 # Subject can be set in your I18n file at config/locales/en.yml 4 # with the following lookup: 5 # 6 # en.user_mailer.account_activation.subject 7 # 8 def account_activation(user) 9 @user = user 10 mail to: user.email, subject: "Account activation | アカウント認証" 11 end 12 13 # Subject can be set in your I18n file at config/locales/en.yml 14 # with the following lookup: 15 # 16 # en.user_mailer.password_reset.subject 17 # 18 def password_reset 19 @greeting = "Hi" 20 21 mail to: "to@example.org" 22 end 23end 24
html
1[account_activation.html.erb] 2<h1>INTE</h1> 3 4<p>Hello <%= @user.name %></p> 5 6<p>Welcome to INTE! Click on the link below to activate your account.</p> 7<p>INTEへようこそ!下のリンクをクリックして、アカウントを有効化してください。</p> 8 9<%= link_to "Activate | 有効化", edit_account_activation_url(@user.activation_token, email: @user.email) %>
txt
1[account_activation.txt.erb] 2Hello <%= @user.name %>, 3 4Welcome to INTE! Click on the link below to activate your account. 5INTEヘようこそ!下のリンクをクリックして、アカウントを有効化してください。 6 7<%= edit_account_activation_url(@user.activation_token, email: @user.email) %> 8 9
yml
1[users.yml] 2michael: 3 name: Michael Example 4 email: michael@example.com 5 password_digest: <%= User.digest('password') %> 6 activated: true 7 activated_at: <%= Time.zone.now %> 8 9archer: 10 name: Sterling Archer 11 email: duchess@example.gov 12 password_digest: <%= User.digest('password') %> 13 activated: true 14 activated_at: <%= Time.zone.now %> 15 16lana: 17 name: Lana Kane 18 email: hands@example.gov 19 password_digest: <%= User.digest('password') %> 20 activated: true 21 activated_at: <%= Time.zone.now %> 22 23malory: 24 name: Malory Archer 25 email: boss@example.gov 26 password_digest: <%= User.digest('password') %> 27 activated: true 28 activated_at: <%= Time.zone.now %> 29 30<% 30.times do |n| %> 31user_<%= n %>: 32 name: <%= "User #{n}" %> 33 email: <%= "user-#{n}@example.com" %> 34 password_digest: <%= User.digest('password') %> 35 activated: true 36 activated_at: <%= Time.zone.now %> 37<% end %> 38
補足情報(FW/ツールのバージョンなど)
Rails 6.0.3
Ruby 2.6.3
AWS Cloud9を使用
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/18 09:57
2021/06/18 11:09