Тестирование вызова функции с помощью Mocha

В моем текущем приложении Rails 3 я провожу некоторое модульное тестирование, чтобы убедиться, что вызовы для обновления S3 выполняются только в определенных ситуациях. Я не хочу обновлять S3 во время тестов, поэтому я использую Mocha, чтобы заглушить поведение. Есть ли способ убедиться, что функция вызывается с использованием мокко? Я просмотрел «Ожидания», и, если я не ошибаюсь, мне кажется, что я должен сделать:

object.expects(:function_name).once

Однако это не дает желаемых результатов: это помечает ошибку, если имя_функции вызывается дважды (что желательно), она НЕ будет отмечать ошибку, если вызывается только один раз (как и должно), но проблема в том, что НЕ БУДЕТ отмечать ошибку, если функция вызывается ноль раз. Мне нужен способ убедиться, что он вызван. Похоже, мокко должно это поддержать, так что, возможно, я делаю это неправильно. Любая помощь будет принята с благодарностью.

***** ИСПРАВЛЕНИЕ:

Оказалось, что я делал все правильно, за исключением того, что метод mocha_verify не вызывался автоматически. Для тех, кто сталкивается с подобной проблемой, ознакомьтесь с ответом Оле Мортена Амундсена здесь: Mocha Mock переносится в другой тест

10
задан Community 23 May 2017 в 11:54
поделиться