Вы можете использовать allow
(заглушка) вместо expect
(фиктивный):
allow(object).to receive(:my_method_name) { |param1, param2| param1 }
С именованными параметрами:
allow(object).to receive(:my_method_name) { |params| params[:my_named_param] }
Вот пример из реальной жизни:
Предположим, у нас есть S3StorageService
, который загружает наши файлы на S3, используя метод upload_file
. Этот метод возвращает прямой URL-адрес S3 для нашего загруженного файла.
def self.upload_file(file_type:, pathname:, metadata: {}) …
Мы хотим остановить эту загрузку по многим причинам (офлайн-тестирование, повышение производительности…):
allow(S3StorageService).to receive(:upload_file) { |params| params[:pathname] }
Эта заглушка возвращает только путь к файлу.
person
Maxime Brehin
schedule
23.06.2017