我在使用tokenInput jQuery 插件的 Rails 应用程序中有一个表单。为了测试表单,我添加了 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
它通过了;但是,永远无法到达控制器。
每次我使用 poltergeist 运行规范时都会收到这些警告:
2013-11-05 07:39:42.087 幻影 [5629:507] *警告:类 NSView 中的方法 userSpaceScaleFactor 在 10.7 及更高版本中已弃用。它不应该在新的应用程序中使用。使用 convertRectToBacking: 代替。2013-11-05 07:39:42.502 phantomjs[5629:507] CoreText 性能说明:客户端使用名称“Times New Roman”调用 CTFontCreateWithName(),并使用 PostScript 名称“TimesNewRomanPSMT”获取字体。为获得最佳性能,调用此 API 时仅使用 PostScript 名称。2013-11-05 07:39:42.502 phantomjs[5629:507] CoreText 性能说明:在 CTFontLogSuboptimalRequest 上设置断点以进行调试。2013-11-05 07:39:42.588 phantomjs[5629:507] CoreText 性能说明:客户端使用名称“Times New Roman”调用 CTFontCreateWithName(),并使用 PostScript 名称“TimesNewRomanPSMT”获取字体。为了获得最佳性能,调用此 API 时仅使用 PostScript 名称。2013-11-05 07:39:42.590 phantomjs[5629:507] CoreText 性能说明:客户端使用名称“Times New Roman”调用 CTFontCreateWithName(),并使用 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