It's better to pass strings to assert_match - it converts them to regular expressions, escaping special chars like '.'. It seems email.encoded contains some unexpected line breaks (due to encoding), it's better to assert_match email.body.to_s.

This commit is contained in:
Jakub Kuźma 2012-07-09 11:53:22 +02:00
parent 8139daa77b
commit ad1c447a99

@ -508,8 +508,8 @@ class UserMailerTest < ActionMailer::TestCase
# Test the body of the sent email contains what we expect it to
assert_equal [user.email], email.to
assert_equal "Welcome to My Awesome Site", email.subject
assert_match(/<h1>Welcome to example.com, #{user.name}<\/h1>/, email.encoded)
assert_match(/Welcome to example.com, #{user.name}/, email.encoded)
assert_match "<h1>Welcome to example.com, #{user.name}</h1>", email.body.to_s
assert_match "Welcome to example.com, #{user.name}", email.body.to_s
end
end
</ruby>