2013-03-16 5 views

Antwort

45

deklariert werden, wenn ein vor (: alle) im RSpec.configure Block definiert wird vor jeder Top-Level Beispiel Gruppe genannt wird, während eine vor (: suite) Codeblock wird nur einmal aufgerufen.

Hier ein Beispiel:

RSpec.configure do |config| 
    config.before(:all) {puts "Before :all"} 
    config.after(:all) {puts "After :all"} 
    config.before(:suite) {puts "Before :suite"} 
    config.after(:suite) {puts "After :suite"} 
end 

describe "spec1" do 
    example "spec1" do 
    puts "spec1" 
    end 
end 

describe "spec2" do 
    example "spec2" do 
    puts "spec2" 
    end 
end 

Ausgang:

Before :suite 
Before :all 
spec1 
After :all 
Before :all 
spec2 
After :all 
After :suite 
+0

meine Frage ist: „Wenn ich ein paar Samen Daten wie Benutzer admin laden mit' vor suite' gewohnt, dass die Daten nach dem Beispiel gelöscht werden soll Lauf?" – illusionist

+0

Nein, sie bleiben, Sie müssen manuell mit ihnen umgehen. Nur bevor (: Beispiel) ist innerhalb der Transaktion. – Foton

+0

: suite und: context (=: all) sind außerhalb der Transaktion. Egal wie tief die Kontexte verschachtelt sind. – Foton

Verwandte Themen