2013-03-16 11 views

risposta

45

Quando una prima (: all) è definito nel blocco RSpec.configure viene chiamato prima di ogni esempio gruppo di livello superiore, mentre una prima (: suite) il blocco di codice viene chiamato solo una volta.

Ecco un esempio:

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 

uscita:

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

la mia domanda è: "Se io caricare alcuni dati di semi come amministratore utente utilizzando' prima suite' wont che i dati essere cancellata dopo esempio è correre?" – illusionist

+0

No rimarranno, devi gestirli manualmente. Solo prima (: esempio) è all'interno della transazione. – Foton

+0

: suite e: context (=: all) sono transazioni esterne. Non importa quanto siano profondi i contesti annidati. – Foton