que tienen código en mi modelo (RoR 3.0.x), que es más o menos así:Testing ganchos 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
y estoy usando la última joya rspec para probarlo. El problema es que no puedo probar el método de notificación: si lo pruebo directamente no puedo porque está protegido, si creo un mensaje y establezco expectativas, no funciona porque, aparentemente, aunque rspec ejecuta la notificación Metodología No puedo atrapar las llamadas a tiempo.
Mi especificación es:
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
El notificador objeto nunca recibe message_from_portfolio. ¿Qué estoy haciendo mal? Sugerencias?
Pero se utilizó 'u.messages.build'. ¿No es eso lo que sugieres? – lulalala