53

Relishのbeforeおよびafterフックのドキュメントには、beforebefore(:suite)が呼び出されることが示されているだけbefore(:all)です。

いつ使用する必要がありますか?

4

2 に答える 2

92

ブロックでabefore(:all)が定義されている場合、RSpec.configure各トップレベルのサンプルグループの前に呼び出されますが、before(:suite)コードブロックは1回だけ呼び出されます。

次に例を示します。

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
于 2014-01-16T21:57:43.667 に答える
0

また、before(:suite)を使用して、サンプルグループが実行される前にコードのブロックを実行することもできます。これはRSpec.configureで宣言する必要があります

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

于 2013-03-17T04:16:41.597 に答える