1

我的 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页面上还不存在。

4

0 回答 0