RSpec+Capybara 请求规范 w/JS 不起作用

2024-03-25

使用 Javascript 时我无法使请求规范正常工作。 我的规格pass如果我在没有 Javascript 的情况下运行它们(页面构建为可以使用或不使用 JS)。

具体来说,当我进行如下断言时,规范会失败Post.should have(1).record。 Capybara 只是不从数据库中获取记录,并且数据库在运行之间不会被清理。

我尝试过在禁用事务装置的情况下使用 DatabaseCleaner - 我猜这是常见的方法。没有骰子。

我还尝试过(并且最好更喜欢)在没有 DatabaseCleaner 的情况下运行,使用事务固定装置并强制 AR 在线程之间共享相同的连接(José Valim 描述的补丁 http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/)。再说一次,没有骰子。

此外,我还尝试在 Capybara-webkit 和 Selenium 之间切换 - 问题仍然存在。

我已经建立了一个示例应用程序,其中只有一个基本的 Post 脚手架,它复制了这个问题:https://github.com/cabgfx/js-specs https://github.com/cabgfx/js-specs有一个包含事务固定装置和 AR 共享连接的spec_helper.rb,以及一个用于其他场景的spec_helper_database_cleaner.rb。

我通常使用 Spork,但我在两个 spec_helper.rb 文件中禁用了它,只是为了消除潜在的故障点(在两个应用程序中;“真实”应用程序和示例应用程序)。

我在 Macbook Air 上使用 Pow 进行本地开发,通过 RVM 运行 OS X 10.7.3 和 MRI 1.9.3。 (我也尝试过1.9.2)。

希望我说得有道理 - 任何指导/帮助/指示都是greatly赞赏!


马特 - 非常感谢您抽出时间来帮助我! 我尝试使用你的spec_helper进行设置,使用Selenium作为javascript驱动程序。

规范仍然失败 - 但我可以看到 Firefox 中执行的正确行为...... 然后我突然意识到,问题可能是因为 Capybara 没有等待 AJAX 请求完成而发生的。

然后我恢复到最初的spec_helper(使用Spork,没有DatabaseCleaner),并简单地使用Capybara的wait_until { page.has_content? "text I'm inserting with JS" }.

我更新了示例应用程序,然后添加了sleep 1在请求规范中,这样您就可以自己查看。现在无论有没有 Spork,它都可以工作,而且 AR 猴子补丁似乎工作得很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RSpec+Capybara 请求规范 w/JS 不起作用 的相关文章

随机推荐

  • Heroku:将容器部署到 dyno 时“heroku ps:exec”不起作用

    我正在将 Tensorflow Serving 容器部署到 Heroku 一切正常 但是当我尝试 ssh 到容器中执行某些命令时 Heroku 返回此错误 C Users whitm Desktop CodeProjects deep de
  • CSS 变换比例 - 图像仍然占用空间

    当将以下 CSS 属性添加到图像时 图像仍然占据与大小为 100 时相同的空间 有没有办法让文本填充该图像周围的空间 transform scale 0 2 height auto float right 据我了解 这不是转换的工作原理 它
  • CodenameOne - Android 推送通知支持,无需专业帐户

    因此 我买不起 codeameone 专业帐户 因此我使用 GCM 为 Android 实现了本机推送通知 经过一番努力 我终于成功了 现在 GCM 已弃用 我想迁移到 FCM 但是 我遇到了一些问题 因为代号一不允许我将正确的依赖项注入到
  • 使用 jQuery/cheerio 访问脚本标签中的变量

    我使用 Node js Cheerio 进行网页抓取 请求该网站后 我得到了这样的信息 如何通过 Cheerio jQuery 访问变量值 你可以获得
  • Apache poi - 打印布局,同一张纸上有多个打印区域

    我正在尝试开发一份复杂的报告 并且需要为 Excel 文件设置打印区域 我必须将 xls 文件分成 3 部分 但如果我执行 setPrintArea 新区域会订阅旧区域 结果是我在打印预览中只有最后一页 如何设置多个打印区域 这是代码 pr
  • JNZ 和 CMP 组装说明

    如果我错了请纠正我 这是我的理解JNZ and CMP JNZ 跳跃将会发生 如果Z标志不为零 1 CMP 如果两个值相等 则Z标志已设置 1 否则未设置 0 这是我正在看的 Flash 教程 它正在教授一个简单的 CrackMe 的解决方
  • Field.get(obj) 在注入的 CDI 托管 bean 上返回所有 null,而手动调用 getter 返回正确的值

    我试图通过反射从 JSF 页面的支持 bean 访问某些字段的值 问题是 当我使用 getter 时 我得到了正确的值 但是当我使用必要字段的 get obj 方法时 我总是得到一个空值返回 获取bean对象 ELContext elcon
  • 是否可以将 Java 7 与 IBM WebSphere Application Server 8.5 试用版一起使用

    我已经安装了WAS 8 5TrialWindows 7 上的版本 我想部署并运行 Java 7 应用程序 有可能做到吗 我在 IBM Installation Manager 的功能列表中看不到 IBM WebSphere SDK for
  • 在界面生成器中设置自动调整大小时出现问题

    我有两个 viewController 一个是 UIViewController 的子类 正确自动调整大小 另一个是 UIViewController 子类的子类 我在 Interface Builder 中进行了布局 在模拟器中测试了我的
  • iOS 13 UIView 截图无法正常使用。 iOS 12 运行良好

    我在截取包含显示其中视频流的子视图的主 UIView 时遇到问题 当我截取屏幕截图时 图像是正确的 减去带有黑色视频流的矩形 流图像未显示 截图有问题截图图像不好 https i stack imgur com Cxj3K jpg 和正确的
  • 从资源加载时在 DataGridView 中显示红色“X”的图像

    我正在尝试将我的项目资源中的图像列添加到新创建的 DataGridView 这是代码 DataGridViewImageColumn myImage new DataGridViewImageColumn myImage Image Pro
  • Code First 实体框架多对多关系

    谁能指出我哪里错了 我创建了两个简单的类 具有多对多的关系 工作正常 所有表都已正确填充 除了当我尝试检索任何学生课程时 什么都没有返回 public partial class Student public Student Courses
  • 如何使用 DataBinding Framework MVVM 在 EditText 上设置错误

    我正在使用 Android 数据绑定框架 我假设有一个用于登录表单的 EditText 用户名如下
  • 如何在 popper-js 中显示箭头

    我正在尝试使用popper js https popper js org index html 但我很难阅读文档并让事情正常运行 我似乎无法理解arrow显示 指向引用元素的三角形 下面的代码缩小了我想要做的事情 弹出器显示并定位在内容加载
  • csv 模块返回第一列的 BOM

    我有一个 csv 文件 格式如下 type type mapping style style mapping Count Residential Residential Antique Antique 109 Antique Residen
  • Azure Key Vault - 编程创建

    如何在 NET Core 应用程序中使用 C 以编程方式创建 Azure KeyVault 我看过之后写入和读取密钥库的示例 它是配置的 但不是在创建 kv 本身时进行的 使用方法VaultsOperationsExtensions Cre
  • 滚动顶部动画后滚动/滚动条锁定

    我有一些链接到页面内特定部分 使用主题标签 的锚点 以及滚动到文档窗口顶部或底部的锚点 html body animate scrollTop document height 2000 但是 一旦动画和滚动到达目的地并完成 文档滚动和滚动条
  • 多选编辑表单选定值

    在 Laravel 4 中遇到一个问题时 在 联系人 模型编辑表单中 我可以获得所有字段的当前值 除了用于与另一个模型 公司 建立关系的多重选择的字段值 这是一种多对多的关系 我正在获取公司列表 但即使存在关系 也没有选择任何公司 这是我的
  • 如何解决WPF表单调整大小-控件滞后和黑色背景?

    我有一个非常简单的 WPF 窗口 其中唯一的东西是一个右对齐按钮 当我通过拖动左边界来调整窗口大小时 按钮会跳很多次 自己尝试一下 来回拖动左侧边界 此外 在调整大小期间 黑色背景会暂时暴露 In this https stackoverf
  • RSpec+Capybara 请求规范 w/JS 不起作用

    使用 Javascript 时我无法使请求规范正常工作 我的规格pass如果我在没有 Javascript 的情况下运行它们 页面构建为可以使用或不使用 JS 具体来说 当我进行如下断言时 规范会失败Post should have 1 r