2013-03-16 13 views

Odpowiedz

45

Kiedy przed (: all) jest zdefiniowana w bloku RSpec.configure to nazywa się przed każdym poziomie górnym przykład grupy, natomiast wcześniej (: suite) Blok kodu jest wywoływany tylko raz.

Oto przykład:

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 

wyjściowa:

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

moje pytanie brzmi: „Gdybym załadować niektórych danych nasienne jak Admin użyciem' przed suite' przyzwyczajenie, że dane są usuwane po przykładzie jest biegać?" – illusionist

+0

Nie zostaną, musisz sobie z nimi poradzić ręcznie. Tylko przed (: przykład) jest wewnątrz transakcji. – Foton

+0

: suite i: context (=: all) to zewnętrzna transakcja. Bez względu na to, jak głęboko są zagnieżdżone konteksty. – Foton