Подтвердить что ты не робот

В RSpec, какая разница между (: suite) и before (: all)?

Документация до и после подключения к Relish показывает, что before(:suite) вызывается до before(:all).

Когда я должен использовать один над другим?

4b9b3361

Ответ 1

Когда в блоке RSpec.configure задано значение before (: all), оно вызывается перед каждой группой примеров верхнего уровня, а код кода before (: suite) вызывается только один раз.

Вот пример:

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

Вывод:

Before :suite
Before :all
spec1
After :all
Before :all
spec2
After :all
After :suite

Ответ 2

Вы также можете использовать до (: suite) для запуска блока кода перед любым группы примеров. Это должно быть объявлено в RSpec.configure

http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/Hooks