2015-12-02 119 views
0

我想测试我的用户邮件,我已经写了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 ["[email protected]"], 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

是不是您的邮件模板中的错误?它在错误中说'erb'。 –

回答

0

在看到我的所有测试都失败后,我意识到错误出现在我的用户夹具中。我添加了<% end %>标签,重置并重新播种,并且所有测试都通过了。奇怪的是,测试并不知道问题出在我的users.yml

0

你需要在你的erb文件中关闭结束标记。

+0

我刚刚运行了我的整个测试套件,而不是单独的邮件测试,尽管事实上它们都在一小时前运行良好,而且我最近还没有编辑它们,但它们都抛出了意想不到的输入结束。可能这是Cloud9的问题,而不是我的代码? – dengeist