2008-10-13 53 views
2

如何測試的Rails塊助手在我的意見我使用一個輔助的是需要任意HTML作爲一個塊:與RSPEC

<% some_block_helper do %> 
    Some arbitrary HTML and ERB variables here. 
    More HTML here. 
<% end %> 

我的助手完成渲染之前一堆東西到HTML的傳遞塊回到視圖(Markdown和其他格式)。我想知道在rSpec中測試助手調用結果的最簡潔方法,如果有的話。我發現了幾個與ERB的私有方法有關的例子,但看起來有點脆弱,難以閱讀。

回答

1
  1. 對於功能測試,寫一個正常view spec並測試結果。
  2. 要單元測試您的helper,請將任意html輸入字符串直接傳遞給它。

如果有任何其他困難,我想念,請評論?

+0

擴大。由於測試是另一個例子Ruby,而不是在模板中,現在還不清楚如何複製在「do」和「end」之間放置ERB標籤以外的行爲。 – Peeja 2011-04-19 16:13:21

7

要添加只是有點什麼詹姆斯說,我覺得這樣的事情應該只是罰款:

describe SomeHelper do 
    it 'should do something' do 
    helper.some_block_helper { the_block_code }.should XXXX 
    end 
end 
1

下面是對卡梅隆的回答

describe SomeHelper do 
    it 'should do something' do 
    content = lambda { "blah" }         
    result = helper.some_block_helper(&content) 

    result.should include("blah") 
    result.should XXX 
    end 
end