Dans mon application Rails 3 actuelle, je fais des tests unitaires pour m'assurer que les appels pour mettre à jour S3 ne sont effectués que dans certaines situations. Je ne veux pas mettre à jour S3 pendant les tests, donc j'utilise Mocha pour éliminer le comportement. Y at-il un moyen de s'assurer qu'une fonction est appelée en utilisant moka? J'ai pris un coup d'œil à des attentes, et à moins que je le fais mal, il semble que je dois faire:Tester si une fonction est appelée en utilisant Mocha
object.expects(:function_name).once
Cependant, cela ne donne pas les résultats escomptés: Ce signaleront une erreur si function_name est appelé deux fois (ce qui est souhaité), il ne marquera pas une erreur si elle n'est appelée qu'une seule fois (comme il se doit), mais le problème est NE DOIT PAS signaler une erreur si la fonction est appelée zéro fois. J'ai besoin d'un moyen de m'assurer qu'il est appelé. Il semble que le moka devrait soutenir cela, alors peut-être que je me trompe. Toute aide serait grandement appréciée.
***** CORRECTION:
se trouve que je le faisais droit, sauf que la méthode mocha_verify n'a pas été appelé automatiquement. Pour toute personne qui a un problème similaire, consultez la réponse de Ole Morten Amundsen ici: Mocha Mock Carries To Another Test
vous devriez marquer une réponse comme acceptée. De cette façon, vous ne perdez pas votre temps, ceux qui naviguent pour "Q sans réponse" pour aider de manière désintéressée les gens comme vous et moi. – oma