【发布时间】:2013-02-20 14:41:17
【问题描述】:
我有一个密码重置邮件,我希望能够在我的测试中执行以下操作:
assert_match edit_password_reset_path(user.password_reset_token), mail.body.encoded
# undefined method `edit_password_reset_path' for #<UserMailerTest:0xb6c2ea0>
但是由于 URL 帮助程序,它崩溃了,所以我必须这样做才能让我的测试运行:
assert_match "\/password_resets\/#{user.password_reset_token}\/edit", mail.body.encoded
效果很好,但看起来或感觉不太好。
ActionMailer::TestCase 似乎不知道路径,因为以下失败:
assert_match "#{edit_password_reset_path(user.password_reset_token)}", mail.body.encoded
# undefined method `edit_password_reset_path' for #<UserMailerTest:0xb6c2ec8>
如何在测试单元中访问像 edit_password_reset_path(user.password_reset_token) 这样的 URL 助手?
我正在从 RSpec 切换,这从来不是问题,助手刚刚工作,我会这样做:
it "sends the user a password reset url" do
mail.body.encoded.should match(edit_password_reset_url(user.password_reset_token))
end
【问题讨论】:
标签: ruby-on-rails