4

我正在尝试使用 Capybara 编写 Rspec 请求规范。似乎一切正常,除了Capybara 将页面视为空白。

好兆头:

  • 页面在浏览器中加载正常
  • 拖尾日志显示在测试运行期间呈现了正确的视图
  • 我在视图中放置的任何日志记录语句都会被执行
  • 如果我使用assert_select "h1", :text => "hello world",则测试通过。

不良迹象:

  • 如果我使用page.should have_content('hello world'),它会失败,说Capybara::ElementNotFound: Unable to find xpath "/html"
  • 如果我这样做$stdout.puts page.html,它是空的,除了一个文档类型

我的测试看起来像这样:

describe "working with foos" do
  it "should have a 'new foo' form" do
    get '/foos/new'
    assert_select 'h1', text: 'hello world' # passes
    page.should have_content('hello world') # fails
    $stdout.puts page.html                  # empty except for a doctype
  end
end

这里有什么问题?

4

1 回答 1

7

打额头的回答

...我正在分享以拯救其他人同样的痛苦。

Capybara 使用该visit方法设置其页面变量。

visit '/assembly/manage/task_lists/new'

不要get与 Capybara 一起使用:

get '/assembly/manage/task_lists/new'
于 2012-08-17T16:32:14.607 回答