水豚和远程链接

时间:2016-05-10 18:04:59

标签: ruby-on-rails rspec capybara capybara-webkit

我在 records_path 页面中有此链接:

link_to "CLICK HERE", edit_record_path(record), remote: true

控制器:

def edit
  puts request.format # Just to show you part of the issue
end

点击后,它会执行 edit.js.coffee 并渲染一个用于编辑记录的模式。

效果很好。 我遇到的问题是Capybara

context 'when on records list page' do
  before { visit records_path }

  context 'when clicking on "CLICK HERE"', js: true do
    before { click_link('CLICK HERE') }

    it 'shows the record name' do
      expect(page).to have_content record.name
    end
  end
end

当我运行测试时,它会引发错误:

  

Capybara :: ElementNotFound:无法找到链接"点击此处"

但是如果我从上下文中删除 js:true ,它可以工作(它在RecordsController上执行编辑方法),但打印格式为 html 而不是 JS 即可。我甚至没有 edit.html ,我只有 edit.js.coffee ,这是应该在测试中呈现的那个。< / p>

我做错了什么?如果链接包含 remote:true 道具,并且测试中 js:true 不足以使其生效吗?

1 个答案:

答案 0 :(得分:0)

在您的设置中,您实际上并未创建记录。我假设这是你的问题的原因。如果您没有要编辑的记录,则不会显示edit_record链接。我可能是错的但是从你粘贴的东西我认为这可能是原因。