Rspec + Capybara + Poltergeist未能提交表格

时间:2013-11-05 12:52:23

标签: ruby-on-rails rspec capybara poltergeist

我在Rails应用程序中有一个使用tokenInput jQuery插件的表单。为了测试表单,我添加了poltergeist作为js驱动程序并将js: true添加到规范中。但是,只要我在任何给定的规范上启用javascript,click_button操作就不会执行任何操作。我在控制器的第一行放置了一个puts,它永远不会被执行。

表单在浏览器中作为用户正常工作,并且测试在没有js: true的情况下正常执行。但是,如果未启用JavaScript,我无法使用tokenInput字段。

没有错误消息;如果我的测试只是:

spec 'test something', js: true do
  visit new_projects_path
  click_button 'Create Project'
end

它过去了;但是,永远不会到达控制器。

每次我使用恶作剧者运行规范时,我都会收到这些警告:

  

2013-11-05 07:39:42.087 phantomjs [5629:507] * 警告:方法   类NSView中的userSpaceScaleFactor在10.7及更高版本上已弃用。   它不应该用在新的应用程序中。使用convertRectToBacking:   代替。 2013-11-05 07:39:42.502 phantomjs [5629:507] CoreText   性能说明:客户端使用名称调用CTFontCreateWithName()   “Times New Roman”并获得PostScript名称的字体   “TimesNewRomanPSMT”。为获得最佳性能,请仅使用PostScript名称   在调用此API时。 2013-11-05 07:39:42.502 phantomjs [5629:507]   CoreText性能说明:设置断点   CTFontLogSuboptimalRequest进行调试。 2013-11-05 07:39:42.588   phantomjs [5629:507] CoreText性能说明:客户端调用   CTFontCreateWithName()使用名称“Times New Roman”并获得字体   PostScript名称“TimesNewRomanPSMT”。为获得最佳性能,请仅使用   调用此API时的PostScript名称。 2013-11-05 07:39:42.590   phantomjs [5629:507] CoreText性能说明:客户端调用   CTFontCreateWithName()使用名称“Times New Roman”并获得字体   PostScript名称“TimesNewRomanPSMT”。为获得最佳性能,请仅使用   调用此API时的PostScript名称。

我也尝试过使用capybara-webkit的规格,只要点击表单按钮就死了。它从来没有打过控制器。

以下是ProjectsController#new

的代码
= form_for project do |f|
  %div.row
    %div.large-3.columns
      %label
        %strong Name: 
    %div.large-6.columns
      = f.text_field :name, { placeholder: "Name" }
    %div.large-3.columns
  %div.row
    %div.large-3.columns
      %label
        %strong Description: 
    %div.large-6.columns
      = f.text_area :description, { placeholder: "Description", class: "long" }
      %aside.instruction
        This field accepts Markdown formatted text
    %div.large-3.columns
  %div.row
    %div.large-3.columns
      %label
        %strong Short Description:
    %div.large-6.columns
      = f.text_area :short_description, { placeholder: "Short Description", class: "short"}
    %div.large-3.columns
  %div.row
    %div.large-3.columns
      %label
        %strong Source:
    %div.large-6.columns
      =f.text_field :source, { placeholder: "Link to source or \"Closed\"" }
    %div.large-3.columns
  %div.row
    %div.large-3.columns
      %label
        %strong Technologies:
    %div.large-6.columns
      = f.text_field :technology_tokens, data: { load: @project.technologies }
    %div.large-3.columns
  %div.row
    %div.large-6.large-centered.small-6.small-centered.columns
      = f.submit

Ruby 2,Rails 4,OS X Mavericks

1 个答案:

答案 0 :(得分:0)

我换回了capybara-webkit,这次工作了。我不相信我改变了什么;有可能更新了一些内容,这是一个短暂的不兼容性?

我很确定警告是Qt的事情;他们最近开始出现给大家。我以为我会把它们包括在内,以防我在里面遗漏了一些东西。