Ложная несущая с использованием rspec - PullRequest
0 голосов
/ 15 октября 2019

Мне нужно запустить мои спецификации без генерации файла загрузки. Я уже использую стратегию очистки после запуска, но я хотел бы использовать макет, чтобы не генерировать файлы внутри проекта.

Я использую:

allow_any_instance_of(CarrierWave::Storage::File).to receive(:store!).and_return nil

Этот код не создает файл, но создает папку с именем tmp внутри: spec / support / uploads

Есть ли способ не генерировать эти файлы и высмеивать этот метод хранения?

1 Ответ

0 голосов
/ 15 октября 2019

Вам необходимо использовать экземпляр double:

let(:file) { instance_double(CarrierWave::Storage::File, store!: nil) }

before do
  allow(CarrierWave::Storage::File).to receive(:new) { file }
end

(Потенциально заменить CarrierWave::Storage::File и :new в операторе allow на любое имя класса и вызов метода, который получит вам экземпляр CarrierWave::Storage::File; Я не знаком с этим гемом или вашим кодом, но это общий синтаксис того, что вы пытаетесь выполнить.)

Рекомендуемое чтение:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...