我想在一个特定的上下文之前运行一个特定的代码块,它应该只运行一次。我尝试将元数据用于上下文块,但它在每个示例之前调用我的代码块。
before do |context|
p 'test test' if context.medata[:something]
end
...
describe '#execute' do
context 'header with timelog fields', :something do
it '123' do
expect(true).to eq true
end
it '234' do
expect(true).to eq true
end
end
end
当我运行rspec时, test test
出现两次。
答案 0 :(得分:1)
在rspec
中,撰写before
是before(:each)
的简写。
您需要使用的是before(:all)
:
describe '#execute' do
context 'header with timelog fields' do
before(:all) do
p 'test test'
end
it '123' do
expect(true).to eq true
end
it '234' do
expect(true).to eq true
end
end
end