Ich versuche, einen before(:each)
-Block für alle Spezifikationen außer type: :feature
auszuführen.
Der einzige Weg, wie ich es zum Laufen bringen kann, ist Cut-and-Paste und separate Konfigurationsblöcke für jeden Typ. ( :type => :model
, :type => :service
, usw.)
spec / rails_helper.rb
%Vor%Gibt es einen trockeneren Ansatz?
Was Sie in Ihren Vorher-Block eingeben, ist ein ' Bedingungen Hash ". RSpec wendet das Vorher nur auf solche Beispiele oder Kontexte an, die diesen Bedingungen entsprechen.
Der Hash ist ziemlich flexibel und Sie können Dinge wie type: :model
direkt ausführen, aber Sie können beliebige Arten von Metadaten mit beliebigen Namen abfragen.
Als Beispiel aus dem Filterlauf ausschließlich
%Vor% :foo
könnte zum Beispiel alles sein, type. Aber es gibt Ihnen eine Menge Flexibilität, vor allem mit der Lambda-Syntax, um sehr genau unter welchen Umständen Sie Ihre Spezifikationen ausführen möchten.
In Ihrem Fall könnten Sie so etwas tun:
%Vor%Tags und Links ruby ruby-on-rails rspec