Hola,
he peleado, mirado los docs y solucionado una cosa con Mocha, pero no
estoy
seguro de que sea la mejor forma.
Estoy testeando un fragmente de código como este
— identity.rb
def generate_connections
…
if new_connections.any?
new_connections.each do |conn|
# Notification for the new connections
recipient = User.find(conn[:user_id])
logger.info(“Notificación de conexion para #{recipient.login}”)
recipient.send_message(:new_connection, {:id => self.user_id,
:login
=> self.login, :service => conn[:service] } )
end
# Notification for the user
recipient = self.user
logger.info(“Notificación de conexion para #{recipient.login}”)
recipient.send_message(:found_connections, { :connections =>
new_connections } )
end
…
end
Y quiero probar que se invoca el send_message para cada instancia de
user (2
veces). Finalmente lo he solucionado, aparentemente, con
context ‘generating connections’ do
setup {
@mort = Factory(:user)
@calvin = Factory(:calvin)
@demimismo = Factory(:demimismo)
....
User.any_instance.expects(:send_message).times(2)
@mort_identity.generate_connections
@calvin_identity.generate_connections
}
Como digo, no estoy nada seguro de mi solución. Se trata, en general, de
cómo asignar expectativas a variables locales como ‘recipient’ en este
ejemplo.
Tengo la sensación de haberme explicado un tanto farragosamente, pero
ahora
mismo creo que no me sale nada mejor