Ich habe einen RSpec-Test für eine Klasse in /lib/classes
, der Zugriff auf eine Zip-Datei benötigt (kein Upload). Die Datei wird in /spec/fixtures/files/test.zip
gespeichert. Wie gebe ich den richtigen Pfad ein, so dass seine Umgebung unabhängig von der Pfadangabe ist?
Soweit ich weiß (von jedem Monat oder zwei), gibt es keinen besseren Weg, etwas in spec_helper
zu erstellen, das den __FILE__
-Wert verwendet, um den Pfad zu einem Wissensbestand zu finden und dann einen eigenen zu erstellen Helfer dazu.
Sie können natürlich auch einen Pfad relativ zu __FILE__
in der einzelnen *_spec.rb
-Datei verwenden.
Rails.root
gibt dir die App root, also
gibt Ihnen den absoluten Pfad Ihrer Datei, unabhängig vom Speicherort der App auf Ihrer Festplatte.
Ich habe dieses Problem kürzlich angegangen und hier ist, was ich gefunden habe:
Definieren Sie eine Konstante in Ihrer spec_helper.rb
(oder gleichwertig), die auf RSpec root zeigt:
Verwenden Sie diese Variable in Ihren *_spec.rb
(oder äquivalenten) Testdateien:
Warum diese Lösung?
require 'spec_helper'
) Hier ist ein Gist: Ссылка
Tags und Links ruby ruby-on-rails rspec rspec-rails