RSPEC获得所有测试/期望的抽象语法树

时间:2014-06-05 05:58:26

标签: ruby rspec tdd

鉴于RSPEC的某一部分(伪造):

describe Person do
  describe '#name' do
    it 'is present' do
      expect(name).not_to be_blank
    end
  end
end

我怎么能得到一个抽象的语法树,使它看起来有点像(沉重的伪):

[
  describe: {
    name: Person,
    content: [
      describe: {
        name: '#name',
        content: [
          it: { tests: [{what: name, condition: 'not blank'}]
        ]
      }
  }
]

是否有内置工具在RSPEC中显示整个执行树?

1 个答案:

答案 0 :(得分:0)

RSpec在运行时不会生成语法树。它提供了在引擎盖下生成类和方法的方法(在DSL的外观中)。您可能需要查看Ruby AST以确定其工作原理。

此外,还创建了名为transpec的RSpec语法转换gem。它确实与AST有关,我建议退房。