我正在添加一个rspec挂钩,允许我打开录像机并使用当前示例的名称作为录像带名称。
it "should have collaborators", :vcr => :once do
# web interactions
end
config.around(:each, :vcr => :once) do |example|
VCR.use_cassette(example.name, :record => :once) do
example.call
end
end
麻烦是我不知道如何获取当前示例的名称(example.name不起作用)。
答案 0 :(得分:13)
RSpec定义了一个metadata
方法,该方法返回一个哈希,其中包含有关该示例的一些有用信息。你可以试试:
example.metadata[:full_description]
应返回组和示例名称,连接成一个字符串。
答案 1 :(得分:1)
这看起来有点繁琐,但它完成了工作
config.before(:each, :vcr => :once) do
group_descriptions = self.example.example_group.ancestors.map(&:description)
spec_name = [*group_descriptions.reverse, self.example.description].join("/")
VCR.insert_cassette(spec_name, :record => :once)
end
config.after(:each, :vcr => :once) do
VCR.eject_cassette
end