Und*_*ion 1 ruby testing rspec ruby-on-rails
使用RSpec的`before(:all)'块时,我遇到了范围问题.
以前我before(:each)
用过,工作得很好:
module ExampleModule
describe ExampleClass
before(:each) do
@loader = Loader.new
end
...
context 'When something' do
before(:each) do
puts @loader.inspect # Loader exists
# Do something using @loader
end
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是切换嵌套before(:each) block to
之前(:all)意味着加载器是零:
module ExampleModule
describe ExampleClass
before(:each) do
@loader = Loader.new
end
...
context 'When something' do
before(:all) do
puts @loader.inspect # Loader is nil
# Do something using @loader
end
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
那么为什么@loader nil在before(:all)块中,而不是在before(:each)块中呢?
所有:all
块都发生在任何块之前:each
:
describe "Foo" do
before :all do
puts "global before :all"
end
before :each do
puts "global before :each"
end
context "with Bar" do
before :all do
puts "context before :all"
end
before :each do
puts "context before :each"
end
it "happens" do
1.should be_true
end
it "or not" do
1.should_not be_false
end
end
end
Run Code Online (Sandbox Code Playgroud)
输出:
rspec -f d -c before.rb
Foo
global before :all
with Bar
context before :all
global before :each
context before :each
happens
global before :each
context before :each
or not
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
731 次 |
最近记录: |