鉴于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中显示整个执行树?
答案 0 :(得分:0)
RSpec在运行时不会生成语法树。它提供了在引擎盖下生成类和方法的方法(在DSL的外观中)。您可能需要查看Ruby AST以确定其工作原理。
此外,还创建了名为transpec
的RSpec语法转换gem。它确实与AST有关,我建议退房。