Тестирование After_Create Крючки с RSPEC

У меня есть код в моей модели (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, чтобы проверить его. Проблема в том, что я не могу проверить метод уведомления: если я проверю его напрямую, я не могу, потому что он защищен, если я создаю сообщение и установить ожидания, это не работает, потому что, по-видимому, даже хотя RSPEC запускает Metod Я не могу поймать звонки во времени.

Мой спецификация:

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

Увередитель объекта никогда не получает Message_From_Portfolio. Что я делаю не так? Предложения?

5
задан ngw 2 September 2011 в 14:20
поделиться