В моем текущем приложении на Rails 3 я провожу модульное тестирование, чтобы убедиться, что вызовы для обновления S3 выполняются только в определенных ситуациях. Я не хочу обновлять S3 во время тестов, поэтому я использую Mocha, чтобы заглушить поведение. Есть ли способ убедиться, что функция вызывается с помощью mocha? Я посмотрел на Ожидания, и если я не делаю это неправильно, кажется, я должен сделать:
object.expects(:function_name).once
Однако это не приводит к желаемым результатам: это помечает ошибку, если имя_функции вызывается дважды (что желательно), оно НЕ помечает ошибку, если оно вызывается только один раз (как и должно быть), но проблема НЕ БУДЕТ помечать ошибку, если функция вызывается ноль раз. Мне нужен способ убедиться, что он называется. Кажется, что мокко должен поддержать это, так что, возможно, я делаю это неправильно. Любая помощь будет принята с благодарностью.
***** ИСПРАВЛЕНИЕ:
Оказывается, я все делал правильно, за исключением того, что метод mocha_verify не вызывался автоматически. Для тех, у кого есть подобная проблема, проверьте ответ Оле Мортена Амундсена здесь: Mocha Mock переносит в другой тест