我的 Rails 应用程序使用导航丸来更改表单上使用的部分。
%ul.nav.nav-pills
%li.active
%a{href: "javascript:void()", id: 'post_one_partial', name: 'post_one_tab'} Post One
%li
%a{href: "javascript:void()", id: 'post_many_partial', name: 'post_many_tab'} Post Many
这些在开发模式下运行良好,使用这个咖啡脚本。
$(document).on 'click', '#post_one_partial, #post_many_partial', ->
post_id = $(this).attr('id')
$('#'+post_id).parent().addClass('active').siblings().removeClass('active')
if post_id == 'post_one_partial'
$('#many_form').hide()
$('#form').show()
else
$('#form').hide()
$('#many_form').show()
false
此处的目标是在单个操作中保留两种创建记录的方法create
,而不是将其拆分。当我单击开发中的导航药丸时,一切都很好,但尝试使用 RSpec 模拟测试过程却没有。当它执行我的命令时,它“单击”按钮(或者我相信,因为它javascript:void()
出现在浏览器窗口的左下角),但没有任何反应。根本没有对表格进行任何更改。我还缺少其他某种设置吗?
功能规格
scenario "User posts many trucks", js: true do
ResqueSpec.reset!
visit "/trucks/new"
click_on "post_many_partial"
page.should have_content "Enter the number of trucks to post."
fill_in "post_many_trucks", with: 3
click_on "Submit"
# further code tests after form is updated
end
单击 时,此规范当前失败post_many_partial
。当链接“被点击”时,我javascript:void()
在屏幕上看到,但表单没有更新。从那时起,测试失败,因为post_many_trucks
页面上还不存在。