In meiner aktuellen Rails 3-App mache ich einige Komponententests, um sicherzustellen, dass Anrufe zum Aktualisieren von S3 nur in bestimmten Situationen ausgeführt werden. Ich möchte S3 während der Tests nicht aktualisieren, daher benutze ich Mocha, um das Verhalten auszublenden. Gibt es eine Möglichkeit, um sicherzustellen, dass eine Funktion mit Mocha aufgerufen wird? Ich habe einen Blick auf die Erwartungen getroffen, und wenn ich es falsch mache, es scheint, ich habe zu tun:Testen, ob eine Funktion mit Mocha aufgerufen wird
object.expects(:function_name).once
Dies ist jedoch nicht die gewünschten Ergebnisse liefern: Dies wird Flagge einen Fehler, wenn function_name ist zweimal aufgerufen (was gewünscht ist), wird es keinen Fehler melden, wenn es nur einmal aufgerufen wird (wie es sollte), aber das Problem ist es WILL NICHT Flag einen Fehler, wenn die Funktion null mal aufgerufen wird. Ich brauche einen Weg, um sicherzustellen, dass es heißt. Es scheint, als ob Mocha dies unterstützen sollte, also mache ich es vielleicht falsch. Jede Hilfe würde sehr geschätzt werden.
***** KORREKTUR:
Es stellte sich heraus, dass ich es richtig tat, außer dass die mocha_verify Methode nicht automatisch aufgerufen wurde. Für alle, die ein ähnliches Problem hat Besuche Ole Morten Amundsens Antwort hier: Mocha Mock Carries To Another Test
Sie sollten Markieren Sie eine Antwort als akzeptiert. Auf diese Weise verschwendest du keine guten Leute, die nach "unbeantwortetem Q" suchen, um selbstlos Menschen wie dich und mich zu helfen. – oma