我有这样的规格:
shared_examples_for 'using the id' do |the_id|
it 'should do something with the id' do
# do something with the_id
end
end
id = nil
describe 'a spec' do
it 'should retrieve id' do
id = getId
expect(id).to eq(12345)
end
include_examples 'using the id', id
end
问题是,一旦规范运行并通过include_examples进入共享示例,id始终为nil。我可以验证在规范本身的第一个块中是否设置了id,这似乎是不正确的交接。
我不能使用it_behaves_like,因为我们正在使用rspec进行旅程测试,所以订单很重要。我看到的每个例子都说这应该有用,我没有想法。
答案 0 :(得分:0)
将id
块的定义移到it
块之外,以便在共享示例中访问它,或在致电getId
时使用include_examples
,因为{{1} }和it
具有不同的执行范围。
describe