Wie stub carrierwave in Rspec?
Ich will stub carrierwave um zu verhindern, dass es von fetch Bilder auf dem web während meiner tests. Wie würde ich stub Dinge zu erreichen?
Mein crawler analysiert eine remote-web-Seite, und spart eine Bild-url in das Modell ein. Carrierwave holt das Bild automatisch beim speichern-operation. Es funktioniert gut.
Aber ich habe einen test über die Analyse von Seiten, und jeder-Zeit wird es laden Sie die Datei, die verlangsamt die Prüfung.
UPDATE:
Ich montieren Sie den uploader wie in der folgenden (in der pre-bestehenden Büroklammer Spalte)
mount_uploader :image, TopicImageUploader, :mount_on => :image_file_name
Ich versuchte stub die folgenden, aber weder gearbeitet:
Topic.any_instance.stub(:store_image!)
Topic.any_instance.stub(:store_image_file_name!)
Topic.any_instance.stub(:store_image_remote_url!)
- versuchen Sie dies:
allow(Topic).to receive(:store_image!)
Du musst angemeldet sein, um einen Kommentar abzugeben.
allow_any_instance_of(TopicImageUploader).to receive(:download!)
Dies ist, was ich in meinem spec_helper:
Diese komplett blockiert alle real-Datei-uploads (beachten Sie, dass ich mit diesem mit carrier wave 0.5.8, die neueste version zum Zeitpunkt des Schreibens, wenn Sie mit viel älteren version, es könnte anders). Wenn Sie Steuern möchten, tests, die stub-uploads, die Sie verwenden könnten:
any_instance
scheint, haben keine Wirkung.Reduzierte ich meine test-suite-Zeit von 25 Sekunden nur 2 Sekunden mit einer einfachen config in die CarrierWave Initialisierer:
Diese config überspringt die Bildbearbeitung (Größenänderung, zuschneiden, ...) von ImageMagick, MiniMagick ect.