Моя программа загружает zip-файл из Интернета, затем анализирует его. Соответствующие синтаксический анализ связанных код:Как использовать разные значения параметров в макете/заглушке RSpec?
Zip::File.open("real_file.zip") do |zip_file|
# do stuff
end
В моей тестовой среде RSpec, я хотел бы окурок этого кода для разбора поддельного/макета файла вместо реального. В частности, я хотел бы заменить значение параметра «real_file.zip» на «mock_file.zip».
Я попробовал следующий подход:
allow(Zip::File).to receive(:open).and_return(Zip::File.open("mock_file.zip"))
... но это предотвращает выполнение кода внутри блока (# do stuff
). Я не хочу, чтобы содержимое mock-файла было возвращено по методу, но rahter присваивается значению zip_file
для дальнейшего использования. Как это можно достичь?
Я думаю, что вы хотите' разрешить (Zip :: File) .чтобы получить (открытыми) {| & блок | block.call (Zip :: File.open ('mock_file.zip'))} ' https://www.relishapp.com/rspec/rspec-mocks/v/3-2/docs/configuring-responses/ блок-реализация # отдача-на-вызывающий блок – mroach