[英]How to test that a view helper renders a partial?
說我想根據控制器的實例變量渲染不同的局部。 我將邏輯放在輔助方法中,如下所示:
def display_my_partial(foo)
foo == bar ? render(partial_x) : render(partial_y)
end
並在視圖中調用(使用Slim):
= display_my_partial(@foo)
我的測試應該是什么樣的? 我嘗試了類似的東西:
expect(display_my_partial(foo)).to render(partial: 'partial_x')
但得到:
NoMethodError:
undefined method `matches?' for #<ActiveSupport::SafeBuffer:0x007ffb490aba80>
我的示例有點復雜,因為我的局部變量位於嵌套的名稱空間中。 我不得不嘗試一點只有usind render 'partial_x'
VS render partial: 'namespace/model/partial_x'
得到它的規范工作,但最后我得到了上述的錯誤。
那么您將如何測試呢?
您在哪里進行測試? 確保調用render_views。
無論如何,您是否真的在乎它呈現了那部分? 如果更改了文件名,或者您決定使用html helper更改實現,該怎么辦。 這與輸出無關。 我個人將斷言輸出。 根據輸出的復雜程度,您可以在視圖測試或簡單的單元測試中進行輸出。
HTH,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.