我正在尝试测试我的用户邮件,我写了user_mailer_test.rb
,如下所示:
require 'test_helper'
class UserMailerTest < ActionMailer::TestCase
test "account_activation" do
user = users(:test)
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
当我运行我的测试套件时,它会抛出一个错误:
ERROR["test_account_activation", UserMailerTest, 2015-12-01 16:35:46 +0000]
test_account_activation#UserMailerTest (1448987746.26s)
SyntaxError: SyntaxError: (erb):36: syntax error, unexpected end-of-input, expecting keyword_end
...ut.force_encoding(__ENCODING__)
我错过了什么end
?测试看起来适合我。提前谢谢!
编辑:我刚刚运行了我的整个测试套件,而不仅仅是邮件程序测试,而且他们所有投掷unexpected end-of-input
尽管他们都是一小时前跑得很好,我最近没有编辑过。这可能是Cloud9的问题而不是我的代码吗?
答案 0 :(得分:0)
您的erb文件中需要一个结束标记。
答案 1 :(得分:0)
在看到我的所有测试都失败后,我意识到错误发生在我的用户设备中。我重新添加了<% end %>
标记,重置并重新播种,并且我的所有测试都通过了。但是,奇怪的是,测试并不知道问题出在users.yml
。