我正在使用Rspec 2和Rails 3.2。我想检查我的rspec测试,在某些情况下特定文件已呈现。像这样:
it "should render mobile templates" do
get :index
response.should render_template(‘index.mobile.erb’)
response.should render_template(‘layout/application.mobile.erb’)
end
以上rspec代码失败如下:
Failure/Error: response.should render_template('index.mobile.erb')
expecting <"index.mobile.erb"> but rendering with <"pages/index, layouts/application">
我用Rspec 1.x读到它was possible。但我不能用Rspec 2和rendered_template matcher来检查。
P.S。我找到了rails断言assert_template及其file
选项,但rendered_template
忽略了此选项。
UPD 如果我检查index.html.erb
而非index.html.erb
答案 0 :(得分:0)
我无法完全验证它,但我认为文件扩展名.mobile
是导致问题的原因。
Rails会将.mobile
视为一种模板引擎,但不是模板名称的一部分。
您可以尝试将模板重命名为index_mobile
,以检查是否正确。
我建议使用更明确的名称,如
pages/index_mobile.erb
mobile/pages/index.erb # This would be better for organization.
pages/mobile/index.erb