Rspec.config vorher (: jedes) außer für spezifische: Typen

8

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?

    
madcow 18.09.2015, 15:13
quelle

2 Antworten

10

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%     
Yule 19.09.2015, 17:36
quelle
2

Sie könnten unless verwenden, um Beispielmetadaten über einen around -Hook zu beurteilen.

%Vor%     
Johnson 18.09.2015 19:14
quelle

Tags und Links