我在 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 不足以使其生效吗?
答案 0 :(得分:0)
在您的设置中,您实际上并未创建记录。我假设这是你的问题的原因。如果您没有要编辑的记录,则不会显示edit_record链接。我可能是错的但是从你粘贴的东西我认为这可能是原因。