如何在RSpec/Capybara视图规范中查看呈现的页面?

如何在RSpec/Capybara视图规范中查看呈现的页面?,rspec,capybara,rspec-rails,Rspec,Capybara,Rspec Rails,我知道在使用Capybara的普通功能规范中,我可以做如下操作: require "rails_helper" describe "users/show", type: :feature do it 'renders a page' do visit user_path save_and_open_page end end require "rails_helper" describe "users/show", type: :view do it 'rende

我知道在使用Capybara的普通功能规范中,我可以做如下操作:

require "rails_helper"

describe "users/show", type: :feature do
  it 'renders a page' do
    visit user_path
    save_and_open_page
  end
end
require "rails_helper"

describe "users/show", type: :view do
  it 'renders a page' do
    render
    save_and_open_page
  end
end
是否有一种在视图规范中查看呈现页面的等效方法,而不将其标记为功能?例如:

require "rails_helper"

describe "users/show", type: :feature do
  it 'renders a page' do
    visit user_path
    save_and_open_page
  end
end
require "rails_helper"

describe "users/show", type: :view do
  it 'renders a page' do
    render
    save_and_open_page
  end
end
按原样,我得到一个
NameError:undefined局部变量或方法“save_and_open_page”
,当我尝试此操作时引发


(我知道我可以只查看呈现的字符串,有人在Features specs上的类似线程中建议我这样做——如果需要,我可以编写自己的方法来完成。但它似乎有一些现有的功能?

不,在浏览器中打开“页面”的视图测试中没有现有的功能。默认情况下,视图规范中只包括水豚匹配器,而不包括其会话方法。这是因为视图规范没有“浏览器”,只是将视图模板作为字符串呈现和返回(没有加载CSS/JS、没有cookie、没有实际会话、没有交互等)。正如您所指出的,如果您确实需要该功能,将
呈现的
字符串保存到文件中并加载到浏览器中是非常容易的