example - rspec rails 5
En RSpec, ¿cuál es la diferencia entre before(: suite) y before(: all)? (2)
La documentación del gancho antes y después de Relish solo muestra que before(:suite)
se llama before(:all)
to before(:all)
.
¿Cuándo debería usar uno sobre el otro?
También puede usar before (: suite) para ejecutar un bloque de código antes de ejecutar cualquier grupo de ejemplo. Esto debe declararse en RSpec.configure
http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/Hooks
Cuando se define un before (: all) en el bloque RSpec.configure, se llama antes de cada grupo de ejemplo de nivel superior, mientras que un bloque de código before (: suite) solo se llama una vez.
Aquí hay un ejemplo:
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
Salida:
Before :suite
Before :all
spec1
After :all
Before :all
spec2
After :all
After :suite