En mi aplicación actual de Rails 3, realizo algunas pruebas de unidad para asegurarme de que las llamadas para actualizar S3 solo se realicen en ciertas situaciones. No quiero actualizar S3 durante las pruebas, entonces estoy usando Mocha para anular el comportamiento. ¿Hay alguna forma de asegurarse de que se llame a una función usando mocha? He echado un vistazo a las expectativas, ya menos que lo estoy haciendo mal, parece que tengo que hacer:Comprobando si se llama a una función usando Mocha
object.expects(:function_name).once
Sin embargo, esto no produce los resultados deseados: Esta bandera voluntad un error si es function_name llamado dos veces (lo que se desea), NO marcará un error si solo se llama una vez (como debería), pero el problema es NO marcar un error si la función se llama cero veces. Necesito una forma de asegurarme de que se llame. Parece que Mocha debería soportar esto, así que tal vez lo estoy haciendo mal. Cualquier ayuda sería muy apreciada.
***** CORRECCIÓN:
Resulta que yo estaba haciendo las cosas bien, excepto que el método mocha_verify no estaba siendo llamado automáticamente. Para cualquier persona que está teniendo un problema similar, echa un vistazo a la respuesta de Ole Morten Amundsen aquí: Mocha Mock Carries To Another Test
que debiera marque una respuesta como aceptada. De esa manera no desperdicia el tiempo de la gente buena, aquellos que buscan "Q sin respuesta" para ayudar desinteresadamente a personas como tú y como yo. – oma