4

这完全是愚蠢和不重要的,但我只是好奇:使用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

我实际上是在问,因为我想输出一些有用的信息,但是测试输出仍然具有最大的可读性(即,具有适当的缩进)。

4

2 回答 2

3

在您的示例中,您可以使用example.metadata,这是一个提供大量信息的哈希。

于 2012-05-05T06:48:27.990 回答
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

于 2014-05-03T16:41:35.467 回答