我在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,这就是应该在测试中呈现的那个。
我做错了什么?如果链接有remote: true支柱,并且测试有js: true,那么应该不足以使其工作?
发布于 2016-05-10 22:54:09
在您的设置中,您实际上并不创建记录。我想这就是你问题的原因。如果您没有要编辑的记录,则不会显示edit_record链接。我可能错了,但从你所说的来看,我认为这可能是原因。
https://stackoverflow.com/questions/37145888
复制相似问题