У меня есть код в моей модели (RoR 3.0.x), который более или менее похож на это:
class Message
after_create :notify
protected
def notify
if visible?
Notifier.message_from_portfolio( user, self ).deliver
else
Notifier.invisible_message_from_portfolio( user, self ).deliver
end
end
end
И я использую последний гем rspec для его тестирования.Проблема в том, что я не могу протестировать метод notify: если я тестирую его напрямую, я не могу, потому что он защищен, если я создаю сообщение и устанавливаю ожидания, он не работает, потому что, очевидно, даже если rspec запускает метод notifyЯ не могу вовремя перехватывать вызовы.
Моя спецификация:
describe :notification do
it "should send the whole message by email when visible" do
u = Factory.create( :user, :account_type => 1 )
message = u.messages.build( :body => "Whatever", :author => "Nobody", :email => "test@example.com" )
Notifier.should_receive( :message_from_portfolio )
message.save
end
end
Объект Notifier никогда не получает message_from_portfolio.Что я делаю неправильно?Предложения?