使用 rspec 和 capybara 测试由 cocoon 动态添加的字段

2023-11-20

我想知道是否有人测试由 cocoon 动态添加的字段?

这是一个很好的节省时间的方法,但是动态添加的所有字段都在 ID 和名称中添加了非常长的数字。这意味着我必须跳过需要页面上多个(一组)字段的测试。


Afaik 你可以测试两件事:

  • 嵌套元素的动态添加有效
  • 创建元素,填充元素并将其存储在数据库中

因此,假设您的视图的相关部分如下所示(默认示例):

#tasks
  = f.semantic_fields_for :tasks do |task|
    = render 'task_fields', :f => task
  .links
    = link_to_add_association 'add task', f, :tasks

你的嵌套元素看起来像

.nested-fields
  = f.input :description
  = f.input :done, :as => :boolean
  = link_to_remove_association "remove task", f 

所以通常你给它一个类,我通常只是测试页面上元素的数量。

因此,如果一个元素已经存在,则创建一个新元素,计数应该为 2。你可以用这个来测试

 find("#tasks .nested-fields").count.should == 2

填充新添加的嵌套元素,您可以使用:last-childCSS选择器

 find("#tasks .nested-fields:last-child input#description").set("something")

名称和 id 的形成方式与 Rails 内部结构很接近,因此我尽量避免使用这些内容。

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

使用 rspec 和 capybara 测试由 cocoon 动态添加的字段 的相关文章

随机推荐

  • Firestore获取根集合的所有文档和子集合

    假设我有这种结构 A collection a doc name Tim B collection b doc color blue where A and B are 收藏品 while a and b are 文件 有没有一种方法可以通
  • 如何在 Matplotlib 中以 3D 形式绘制热图颜色

    I am using Matplotlib 3D to plot 3 dimensions of my dataset like below 但现在我还想将第四维 即 0 到 20 之间的标量值 可视化为热图 所以基本上 我希望每个点都根据
  • App Engine Java 11 无法在实时服务器上找到或加载主类

    tl dr 为什么这在本地有效 但在部署到实时 App Engine 项目时却无效 我正在尝试使用 Java 11 版本的 App Engine 创建一个基于 servlet 的准系统 Web 应用程序 我正在将一些项目从 Java 8 更
  • 如何在 multiautocompletetextview 中使用空间标记器(如 gmail 到 android 中的字段)正确添加和删除联系人气泡

    i am struggling alot with adding the Bubbles to to field like in gmail or facebook messanger please look into this pictu
  • Android“您需要将 Theme.AppCompat 主题(或后代)与设计库一起使用”

    好的 我收到此错误 标题 很多帖子建议我 甚至Android studio 更改主题 更改为App Appcompat 我已经做到了 清单文件
  • PHP - json_encode(string, JSON_UNESCAPED_UNICODE) 不转义捷克字符

    我从数据库中选择一些数据并将它们编码为 json 但我遇到了捷克符号的问题 例如 我的文件采用utf 8编码 我的数据库也是utf 8编码 我也将标头设置为utf 8编码 请问我还应该做什么 My code header Content T
  • VS2015企业版中出现错误C4576

    我有错误C4576在 Visual Studio 2015 中 当我尝试编译文件 transcoding c 时 该文件的源代码在这里 转码 c 错误 C4576 带括号的类型后跟初始值设定项列表是非标准显式类型转换语法 错误出现在该指令的
  • 列出 git-ls-remote 时为什么标签名称后面有“^{}”? [复制]

    这个问题在这里已经有答案了 当我跑步时git ls remote在工作树中 该命令输出原始存储库中的修订列表 由于某种原因 我对每个标签进行了 2 个修订 对于同一标签的第二个修订 标签名称包括 git ls remote From ema
  • 中断等待阻塞操作的线程?

    我正在运行一个线程 其主要操作是使用阻塞函数调用代理 并等待它给它一些东西 我已经使用了 挥发性布尔值 和 Interruption 的已知模式 但我不确定它是否会起作用 当我尝试添加 catch 块时InterruptedExceptio
  • 使用 GitHub API 下载文件时解码 base64

    我正在使用 GitHub API 从 GitHub 下载文件 我已经能够成功进行身份验证并从 github 获得响应 并看到表示文件内容的 Base64 编码字符串 不幸的是 在解码 Base64 字符串时出现了异常错误 字符串长度不是 4
  • libcurl HTTPS POST 数据发送?

    我有通过 HTTP POST 请求接收数据的应用程序 我正在尝试使用 libcurl 打开对此应用程序的请求 发送数据并接收从应用程序返回的回复 这是我到目前为止的代码 int main void CURL curl CURLcode re
  • 如何在 Eclipse 2020-09 中使用 Java 版本 15

    我正在尝试在 Eclipse 2020 09 下运行新的 Java 15 功能 我已经安装了 OpenJDK 15 并将其设置在 Installed JRE 下 尽管如此 我无法将此版本设置为编译器版本 仅限版本 14 我究竟做错了什么 E
  • Mega 的加密如何用于共享?

    我有一些关于找到一种方法来实现可以与多个收件人共享的任意数据的加密的问题 Mega 似乎正是这样做的 据我所知 它在将数据上传到网络服务器之前对其进行加密 仍然可以与其他人共享该文件 加密是如何完成的 想象一下以下场景 用户Alice将文件
  • 获取非常大的文件的 MD5 校验和

    我编写了一个脚本 该脚本读取目录中的所有文件并返回每个文件的 md5 哈希值 但是 对于相当大的文件 它不会呈现任何内容 我假设解释器为最大处理时间设置了一些值 并且由于获取该值需要很长时间 因此它只是跳到其他文件 有没有办法通过 PHP
  • 如何在 yii 框架中自动设置 url 友好

    我刚刚学习 yii 框架并阅读了本教程 关于yii 如何设置 url 但我不知道 假设我有10个控制器 我应该在配置文件中一一定义控制器吗 有没有更好的方法来为所有控制器设置像 www yoursite com yourController
  • 将标题层次结构生成为有序列表

    我已经思考这个问题有一段时间了 但无法想出可行的解决方案 我什至无法对其进行伪编码 举例来说 您有一个标题结构如下的页面 h1 Heading level 1 h1 h2 Sub heading 1 h2 h2 Sub heading 2
  • 在运行时请求权限,Android M+

    首先 我知道这是一个重复的问题 但我已经看过其他类似问题的答案 但未能通过这些解决方案取得成功 我开发了一个应用程序 它可以在我的测试设备上完美运行 该设备是运行 Android L 5 0 1 的三星 S4 但我希望该应用程序也可以在较新
  • 从 Windows 获取 Rssi 值

    我想测量调制解调器的 rssi 值 是否有任何 api 可以获取 Windows 的 rssi 值 我曾经使用 android 中的 Wifi Manager 来做到这一点 但我找不到任何适用于 Windows 的 api 使用本机代码是最
  • R / ggplot2:评估表达式内的对象

    示例代码 rsq lt round cor mtcars disp mtcars mpg 2 2 rsq 0 72 ggplot mtcars aes x disp y mpg geom point geom smooth method l
  • 使用 rspec 和 capybara 测试由 cocoon 动态添加的字段

    我想知道是否有人测试由 cocoon 动态添加的字段 这是一个很好的节省时间的方法 但是动态添加的所有字段都在 ID 和名称中添加了非常长的数字 这意味着我必须跳过需要页面上多个 一组 字段的测试 Afaik 你可以测试两件事 嵌套元素的动