Ho codice nel mio modello (RoR 3.0.x) che è più o meno così:Test ganci after_create con rspec
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
E sto usando l'ultima gemma RSpec per testarlo. Il problema è che non sono in grado di testare il metodo di notifica: se lo provo direttamente non posso perché è protetto, se creo un messaggio e impostato le aspettative non funziona perché apparentemente anche se rspec esegue la notifica metod Non sono in grado di prendere le chiamate in tempo.
mia specifica è:
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 => "[email protected]")
Notifier.should_receive(:message_from_portfolio)
message.save
end
end
Il Notifier oggetto non riceve mai message_from_portfolio. Che cosa sto facendo di sbagliato? Suggerimenti?
E 'stato utilizzato 'u.messages.build'. Non è quello che suggerisci? – lulalala