2014-06-05 67 views
0

的考慮RSPEC(僞)中的某一部分: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

RSpec運行時不會生成語法樹。它提供了在外觀下生成類和方法的方法(在DSL的外觀中)。您可能需要查看Ruby AST以確定其工作原理。

此外,還有很大的RSpec語法轉換寶石創建了所謂的transpec。它對AST提出了一些建議,我建議您檢查一下。