在RSpec中,before(:suite)和before(:all)之间有什么区别?

时间:2013-03-16 04:50:18

标签: rspec rspec2

The before and after hook documentation on Relish仅显示在before(:suite)之前调用before(:all)

我应该何时使用另一个?

2 个答案:

答案 0 :(得分:62)

before(:all)块中定义RSpec.configure时,会在每个顶级示例组之前调用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

输出:

{{1}}

答案 1 :(得分:0)

  

您也可以使用before(:suite)在任何代码之前运行代码块   示例组正在运行。这应该在RSpec.configure

中声明

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