【发布时间】:2015-05-21 13:54:03
【问题描述】:
我尝试在我的测试环境中调试我的 user_mailer.rb。但我不知道为什么调试器不会停在它应该停的地方。
所以,我大致拥有的代码是:
user_mailer_spec.rb
describe UserMailer do
describe '#send_notification_letters' do
# bunch of code omitted here ...
it 'should record itself to the database'
expect { UserMailer.send_notification_letters(user) }.to change{SentMail.count}.by(1)
end
end
end
在user_mailer.rb
class UserMailer < ActionMailer::Base
def send_notification_letters(user)
byebug # should break here but doesnt,
# also tried binding.pry here, also doesnt work
# buggy code ...
# buggy code ...
# buggy code ...
SentMail.create(...) # never reached
mail(to:..., from:...)
end
end
问题是,为什么当我运行测试 rspec spec/mailer/user_mailer_spec.rb 时 byebug/pry 没有停止在 user_mail.rb 中?
为什么?
如何让它在那个断点处停止?
调试器有错误吗?
【问题讨论】:
-
你在日志中得到了什么?
-
这种情况经常发生在我身上,除非我还在
byebug行上方添加require 'byebug'。 -
@MohammadAbuShady,test.log 中只有一堆 SQL 事务日志,即 UserMailer。 send_notification_letters() 被执行。但是调试器并没有停止。日志中没有关于调试器的任何内容。
-
@infused,试过
require 'byebug',对我没有任何帮助 -
在期望工作之前添加 byebug 吗?
标签: ruby-on-rails rspec actionmailer pry byebug