Я пишу простой обозреватель комментариев, который запускает почтовую программу всякий раз, когда создается новый комментарий.Весь соответствующий код находится в этой сущности: https://gist.github.com/c3234352b3c4776ce132
Обратите внимание, что спецификации для Notification
проходят, но спецификации для CommentObserver
терпят неудачу, поскольку Notification.new_comment
возвращает nil
.Я обнаружил, что могу получить проходную спецификацию, используя вместо этого:
describe CommentObserver do
it "sends a notification mail after a new comment is created" do
Factory(:comment)
ActionMailer::Base.deliveries.should_not be_empty
end
end
Однако это не идеально, потому что он проверяет поведение почтовой программы в спецификации наблюдателя, когда все, что я действительно хочу знатьв том, что он правильно запускает почтовую программу.Почему почтовик возвращает nil
в оригинальной версии спецификации?Каков наилучший подход для определения этого типа функциональности?Я использую Rails 3 и RSpec 2 (и Factory Girl, если это имеет значение).