Cerco di eseguire il debug del mio user_mailer.rb all'interno del mio ambiente di test. Ma non so perché il debugger non si ferma dove suppone.Perché doesnt byebug/pry si ferma al punto di interruzione in Rspec ActionMailer?
Quindi, il codice che grosso modo ho è: 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
In 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
La domanda è: perché è byebug/leva che non si fermi nel user_mail.rb
quando ho eseguito il test rspec spec/mailer/user_mailer_spec.rb
?
E perché?
Come fermarsi a quel punto di interruzione?
C'è un errore nel debugger?
Che cosa si ottiene nei log? –
Questo mi succede frequentemente a meno che aggiungo anche 'require 'byebug'' sopra la riga' byebug'. – infused
@MohammadAbuShady, ci sono solo un mucchio di log delle transazioni SQL in test.log, che significa UserMailer. send_notification_letters() viene eseguito. Ma il debugger non viene fermato. Niente nei registri sul debugger. –