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

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

===============>>#1 票数:8

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-child css选择器

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

如何形成名称和id,靠近rails内部,所以我试图远离那些。

===============>>#2 票数:3 已采纳

也许首先使用Capybara finders ,然后选择输入。 像这样的东西:

visit new_resource_path
click_link "Add a Nested Resource"
first("input[name='nested_resource[name]']").set("Nested Resource")
click_button "submit"

要么

visit new_resource_path
click_link "Add a Nested Resource"
click_link "Add a Nested resource"
all("input[name='nested_resource[name]']").each do |input|
  input.set("Nested Resource")
end
click_button "submit

这只是一种方法,我从未使用过茧。 然而,这是测试动态输入的一种形式。

===============>>#3 票数:0

我刚才使用的一个可能的替代方法是动态更新每个添加的表单字段的标签(使用https://github.com/nathanvda/cocoon/issues/374中提到的技术),现在我的Cucumber / Capybara测试可以轻松插入将文本分成不同的多个表单字段,通过它们具有的不同标签来区分它们。

关于我在这个PR做了什么的详细信息https://github.com/AgileVentures/WebsiteOne/pull/1818

  ask by DazBaldwin translate from so

未解决问题?本站智能推荐:

1回复

使用茧请求nested_attributes表单的规范

我在茧形宝石上使用带有nested_attributes表单的Rails 4。 这允许添加开箱即用的链接以添加新元素或将其从主类中删除。 问题是创建新表单时,这颗宝石没有为表单提供唯一的标识符,而我正在尝试使用Rspec,水豚和poltergeist对其进行测试。 想象一下这个示例
2回复

当动态生成CSS ID和名称时,从嵌套下拉菜单中选择水豚

我正在尝试使用水豚从下拉列表中选择一个项目。 下拉列表是使用茧宝石生成的嵌套项目。 CSS ID和名称都是动态生成的。 页面源的复制/粘贴如下所示: 我可以给水豚查找器提供什么语法以供选择: 编辑:这段代码生成选择框: EDIT2:我认为答案可能在这里:
1回复

用茧和水豚上传多个文件

我在测试使用cocoon使用capybara上传多个文件时遇到问题。 如何查找id: "image"所有字段并将其附加到每个文件? 这是我的测试代码: 错误消息: Unable to find file field #<Capybara::Element tag="inpu
2回复

水豚测试问题

我有模型Post和Image 。 Post has_many images 我有这个领域 <%= f.file_field :image, required: false %> 如何使用Capybara attach_file方法测试通过cocoon gem方法添
1回复

使用Capybara / Rspec / Rails4使用动态ID测试link_to

我想知道测试带有动态ID的link_to内部的link_to单击的最佳方法是什么? 我的桌子会这样填充 提前致谢
2回复

除了在Rails测试中使用Capybara和RSpec之外,Steak还能添加什么?

我正在努力了解牛排的必要性。 我认为它像Cucumber一样,除了你可以使用纯红宝石而不是像Cucumber那样将你的英语语言规范映射到ruby,但它说它主要是在RSpec DSL周围添加一个包装器,并让你使用它 取自: http : //jeffkreeftmeijer.com/201
1回复

Rspec使用测试,Capybara使用开发数据库

我有一个有趣的问题。 我正在使用Rspec进行测试驱动开发,使用带有Poltergeist的Capybara进行验收测试。 哦,还有FactoryGirl。 Rspec和FactoryGirl正在对测试数据库进行操作,这正是我想要的。 问题是验收测试是针对开发数据库进行的。 这会导
1回复

使用Rspec和Capybara测试登录重定向

这是我正在研究的测试用例: 这个特殊的测试失败了。 我想知道的是,它是否失败,因为它无法登录,但因为我检查current_url太快而失败。 在click_button任务执行并且rails重定向用户之前,“等待”的正确方法是什么?
5回复

如何使用Rspec和Capybara测试重定向

我不知道我做错了什么,但每当我尝试测试重定向时,我都会收到此错误:“@request必须是ActionDispatch :: Request” 我正在使用带有Capybara(1.1.2)和Rails 3.2的RSpec-rails(2.9.0)。 如果有人能解释为什么会这样,我将不胜
1回复

如何在rails上使用rspec和capybara测试API?

我创建了一个控制器,可以通过特殊的URL读取api数据。 创建视图后,我可以看到浏览器的结果。 如果我使用rspec + capybara进行功能测试 然后我想确认api数据将在视图中显示 但@data值始终为null。 为什么? 是否有必要从测试代码中获取ap