The before and after hook documentation on Relish zeigt nur, dass before(:suite)
vor before(:all)
aufgerufen wird.Was ist der Unterschied zwischen before (: suite) und before (: all) in RSpec?
Wann sollte ich eins über das andere verwenden?
The before and after hook documentation on Relish zeigt nur, dass before(:suite)
vor before(:all)
aufgerufen wird.Was ist der Unterschied zwischen before (: suite) und before (: all) in RSpec?
Wann sollte ich eins über das andere verwenden?
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
Sie können auch vorher (: suite) einen Code-Block ausführen, bevor Beispielgruppen ausgeführt werden. Dies sollte in RSpec.configure
http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/Hooks
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
Nein, sie bleiben, Sie müssen manuell mit ihnen umgehen. Nur bevor (: Beispiel) ist innerhalb der Transaktion. – Foton
: suite und: context (=: all) sind außerhalb der Transaktion. Egal wie tief die Kontexte verschachtelt sind. – Foton