gpt4 book ai didi

ruby-on-rails - ActionMailer 测试,Rails 指南文档中的 assert_equal 永远不会是真的吗?

转载 作者:行者123 更新时间:2023-11-28 20:32:58 24 4
gpt4 key购买 nike

我正在阅读 Rails 3 指南,并查看测试邮件程序部分。

但是,按照这些说明,我想知道它们是否有问题,并且做出的断言永远都不是真的。

这是文档中的相关部分:

http://guides.rubyonrails.org/testing.html#testing-your-mailers

10.2.2 The Basic Test Case

In this test, @expected is an instance of TMail::Mail that you can use in your tests. It is defined in ActionMailer::TestCase. The test above uses @expected to construct an email, which it then asserts with email created by the custom mailer. The invite fixture is the body of the email and is used as the sample content to assert against. The helper read_fixture is used to read in the content from this file.

这就是我认为是这种情况的原因:

test_card_update_notification(CardSenderMailerTest) [/Users/victorstan/Sites/ContactMonkey/test/unit/card_sender_mailer_test.rb:21]:

<"Date: Mon, 12 Mar 2012 22:54:38 -0400\r\nFrom: ContactMonkey <support@contactmonkey.com>\r\nTo: test@contactmonkey.com\r\nMessage-ID: <4f5eb6ee903b3_710a3fd4d6034ec8484b1@Victor-Stans-MacBook-Pro.local.mail>\r\nSubject: Bob Smith's ContactMonkey Card Has Been Updated!\r\nMime-Version: 1.0\r\nContent-Type: text/plain;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\n\r\nHi Bob!\r\nYou asked to be notified when Bob Smith's card had been updated. You can view and download the new card by visiting their profile page:\r\n\r\nhttp://contactmonkey.com/bob\r\n\r\nUpdates at a glance:\r\n\r\n\tCard:\r\n\t\tTitle: Bauws\r\n\t\tOrganization: Fancy Org\r\n\t\tPersonal url: bob\r\n\r\n\tPhone:\r\n\t\tLabel: work\r\n\t\tNumber: 555 555 1234\r\n\r\n\tAddress:\r\n\t\tLabel: work\r\n\t\tStreet: 145 Dovercourt\r\n\t\tStreet2: \r\n\t\tCity: Toronto\r\n\t\tPostalcode: M6J3C5\r\n\t\tRegion: ON\r\n\t\tCountry: Canada\r\n\r\n\r\n\r\nMake it a great day!\r\nContactMonkey\r\n\r\nProblems? Write to us at support@contactmonkey.com, or just reply to this message.\r\nhttp://contactmonkey.com\r\n"> expected but was
<"Date: Mon, 12 Mar 2012 22:54:38 -0400\r\nFrom: ContactMonkey <support@contactmonkey.com>\r\nTo: test@contactmonkey.com\r\nMessage-ID: <4f5eb6eeaeae1_710a3fd4d6034ec848559@Victor-Stans-MacBook-Pro.local.mail>\r\nSubject: Bob Smith's ContactMonkey Card Has Been Updated!\r\nMime-Version: 1.0\r\nContent-Type: text/plain;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\n\r\nHi Bob!\r\nYou asked to be notified when Bob Smith's card had been updated. You can view and download the new card by visiting their profile page:\r\n\r\nhttp://contactmonkey.com/bob\r\n\r\nUpdates at a glance:\r\n\r\n\tCard:\r\n\t\tTitle: Bauws\r\n\t\tOrganization: Fancy Org\r\n\t\tPersonal url: bob\r\n\r\n\tPhone:\r\n\t\tLabel: work\r\n\t\tNumber: 555 555 1234\r\n\r\n\tAddress:\r\n\t\tLabel: work\r\n\t\tStreet: 145 Dovercourt\r\n\t\tStreet2: \r\n\t\tCity: Toronto\r\n\t\tPostalcode: M6J3C5\r\n\t\tRegion: ON\r\n\t\tCountry: Canada\r\n\r\n\r\n\r\nMake it a great day!\r\nContactMonkey\r\n\r\nProblems? Write to us at support@contactmonkey.com, or just reply to this message.\r\nhttp://contactmonkey.com\r\n">.

注意到区别了吗?

Message-ID: <4f5eb6ee903b3_710a3fd4d6034ec8484b1@Victor-Stans-MacBook-Pro.local.mail>

对比

Message-ID: <4f5eb6eeaeae1_710a3fd4d6034ec848559@Victor-Stans-MacBook-Pro.local.mail>

我该如何解释?据我所知,这不是我的数据的一部分,也不是我的控制权。

我正在使用的断言:

assert_equal @expected.encoded, CardSenderMailer.card_update_notification(card, followers, field_updates).encoded

这与文档中使用的非常相似:

assert_equal @expected.encoded, UserMailer.create_invite('me@example.com', 'friend@example.com', @expected.date).encoded

最佳答案

它不是很漂亮,但我做了类似下面的事情:

test "able to mail something" do
# bunch of @expected statements
assert_equal encode(@expected), encode(MyMailer.mail(@user))
end

def encode message
message.encoded.gsub(/Message-ID: <.+>/, '').gsub(/Date: .+/, '')
end

如果你想在邮件程序测试之间共享,那么修改 test_helper.rb 并添加:

class ActionMailer::TestCase
def encode message
message.encoded.gsub(/Message-ID: <.+>/, '').gsub(/Date: .+/, '')
end
end

关于ruby-on-rails - ActionMailer 测试,Rails 指南文档中的 assert_equal 永远不会是真的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com