这是完全愚蠢和不重要的,但我只是好奇:使用RSpec,我能以某种方式访问我所在范围的“深度”吗?那是......
describe SomeClass do
describe "#some_method" do
context "within some context" do
it "is possible, what I'm asking" do
# Actually, I'm not entirely sure what I'd expect this
# value to be... basically, whatever the RSpec designers
# felt made sense.
mysterious_method_to_get_depth.should == 3
end
end
end
end
我实际上是在问,因为我想输出一些有用的信息,但是这样的方式使得测试输出仍然是最大可读的(即,使用适当的缩进)。
答案 0 :(得分:3)
在您的示例中,您可以使用example.metadata
,这是一个提供大量信息的哈希。
答案 1 :(得分:0)
根据@Myron Marston的建议,我实现了类似的东西:
def mysterious_method_to_get_depth(meta)
if !meta.has_key?(:example_group)
0
else
1 + mysterious_method_to_get_depth(meta[:example_group])
end
end
您应该这样称呼它:mysterious_method_to_get_depth(example.metadata)
另一种解决方案是自定义DocumentationFormatter:https://stackoverflow.com/a/23446897/659788