我試圖測試通過導軌生成的「靜態」頁面(它們是ERB,但獲得緩存),不會呈現任何遺留閃光通知認證系統(設計)或其他地方。rspec render_views忽略佈局?想要測試靜態緩存頁面不顯示Flash消息
我試過編寫這個控制器規範,但看起來response.body只呈現模板,而不是它的佈局?
describe "so that static caching can be used" do
render_views
specify "flash notices are not rendered" do
# edit: the following flash lines don't do anything
# it's not the right flash object, this one is intended for
# inspecting after request not setting before request
flash[:notice] = "flash boo"
flash[:error] = "flash boo"
flash[:alert] = "flash boo"
get :show, :page => 'privacy_policy'
response.body.should have_content('flash boo')
end
end
class StaticPagesController < ApplicationController
layout 'master'
def show
response.headers['Cache-Control'] = "public, max-age=#{6.hours}"
render "static_pages/#{params[:page]}"
end
end
我試圖改變的佈局,不呈現閃光告示,甚至插入文本到佈局模板,但不能使規範失敗。
有沒有辦法讓rspec使用合適的佈局渲染模板?
是一個控制器規範錯誤的方式來嘗試做到這一點? 它看起來不合適,因爲它更多的是使用哪些佈局以及它們的內容,但渲染過程從控制器開始,它接收結果,並且我可以在渲染之前處理閃存散列內容。
版本: 軌(3.0.10), RSpec的護欄(2.6.1), rspec的核心(2.6.4)
謝謝,尼克