gpt4 book ai didi

ruby-on-rails - Rails 教程 ch. 10 测试 10.20 失败

转载 作者:数据小太阳 更新时间:2023-10-29 08:37:19 24 4
gpt4 key购买 nike

我在 Rails 教程中遇到测试 10.20 的问题。使用命令后:

bundle exec rake test:mailers

我收到错误:

Run options: --seed 6131

# Running:

F

Finished in 0.559132s, 1.7885 runs/s, 5.3655 assertions/s.

1) Failure:
UserMailerTest#test_account_activation [/home/adam/workspace/sample_app /test/mailers/user_mailer_test.rb:11]:
Expected: ["noreply@example.com"]
Actual: nil

1 runs, 3 assertions, 1 failures, 0 errors, 0 skips

我已经彻底检查了我的代码,没有发现不当之处,但我显然做错了。

这是我的 user_mailer:

class UserMailer < ActionMailer::Base

def account_activation(user)
@user = user
mail to: user.email, subject: "Account activation"
end

def password_reset
@greeting = "Hi"

mail to: "to@example.org"
end
end

user_mailer_test:

require 'test_helper'

class UserMailerTest < ActionMailer::TestCase

test "account_activation" do
user = users(:michael)
user.activation_token = User.new_token
mail = UserMailer.account_activation(user)
assert_equal "Account activation", mail.subject
assert_equal [user.email], mail.to
assert_equal ["noreply@example.com"], mail.from
assert_match user.name, mail.body.encoded
assert_match user.activation_token, mail.body.encoded
assert_match CGI::escape(user.email), mail.body.encoded
end
end

我已将此行添加到 config/environments/test.rb:

config.action_mailer.default_url_options = { host: 'example.com' }

有什么建议吗?

最佳答案

所有对用户邮件程序的引用都应以

开头
class UserMailer < ApplicationMailer

这是由于 Rails 4.2 最近的变化。上周更新教程时,我遗漏了一些引用资料,但现在已经更正了。请确保您还包含应用程序邮件程序,如 Listing 10.8 中所示。 .事实上,删除邮件程序并从头开始重新生成它们可能是个好主意,以确保您的代码符合 Rails 4.2 预期的结构。

关于ruby-on-rails - Rails 教程 ch. 10 测试 10.20 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28614943/

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