mam kod w moim modelu (ROR 3.0.x), który jest mniej więcej tak:Testowanie after_create haki z 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
i używam najnowszą rspec gem, aby go przetestować. Problem polega na tym, że nie mogę przetestować metody powiadamiania: jeśli przetestuję ją bezpośrednio, nie mogę, ponieważ jest ona chroniona, jeśli utworzę komunikat i ustawię oczekiwania, to nie zadziała, ponieważ widocznie, mimo że rspec uruchamia powiadomienie Metoda Nie jestem w stanie złapać połączeń w czasie.
Mój spec:
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
Przedmiotem Notifier nie odbiera message_from_portfolio. Co ja robię źle? Propozycje?
Użyto 'u.messages.build'. Czy to nie to, co sugerujesz? – lulalala