如何检查实际使用的模板文件

时间:2014-03-15 14:59:03

标签: ruby-on-rails ruby layout rspec views

我正在使用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

,则会出现同样的错误

1 个答案:

答案 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