Ruby on rails 如何使用Cucumber/Capybara测试多文件上传?

Ruby on rails 如何使用Cucumber/Capybara测试多文件上传?,ruby-on-rails,cucumber,capybara,Ruby On Rails,Cucumber,Capybara,我可以测试一个文件的上传 attach_file 'photo', File.join(Rails.root, 'public', 'uploads', 'test.png') 但是,如果我有一个包含multipleatribute的文件字段呢?如何使用Cucumber/Capybara测试多个文件上传?在测试多个文件上传之前,您应该问问自己,如何在一个模型中存储多张照片。一种可能的解决办法是: class Post < ActiveRecord::Base has_many

我可以测试一个文件的上传

attach_file 'photo', File.join(Rails.root, 'public', 'uploads', 'test.png')

但是,如果我有一个包含
multiple
atribute的文件字段呢?如何使用Cucumber/Capybara测试多个文件上传?

在测试多个文件上传之前,您应该问问自己,如何在一个模型中存储多张照片。一种可能的解决办法是:

  class Post < ActiveRecord::Base
    has_many :photos
  end

  class Photo < ActiveRecord::Base
    belongs_to :post
    # if you're using Carrierwave
    mount_uploader :photo, PhotoUploader 
  end
class Post

在此之后,您可以意识到,测试一个或多个上传文件之间没有区别。

似乎目前不可能使用水豚:

HTML:

<input id="fileupload" class="photo-uploader" type="file" multiple="" name="images">
  • 使用
    type=“file”
    查找
    name
    属性,并将其添加为第一个参数
  • 将路径添加到文件。请参阅上述声明。不要使用相对路径上载文件

  • 但我需要测试的功能是,如果我添加5个文件,我将看到5个上传图像的列表项…@invi使用相关代码更新您的问题。显示您的模型,告诉我们您使用的上载库,提供您当前的上载测试功能。我使用的是CarrierWave。但为什么这很重要?一切正常,我只想添加测试。。对于一个文件,我添加了测试,但是对于多个。。。不知道怎么做。@Invi抱歉,没有细节你只能靠自己。但是为什么?问题是:我如何使用像
    attach_file
    这样的东西,在这里我将提供一些文件,比如
    attach_file
    。它不知道服务器上发生了什么,甚至我只是添加了flash消息。问题出在客户端。如何说:“Cucumber,请向该字段添加一些文件”这个答案当时是正确的,但我认为@user2391218有了新的正确答案。这应该是公认的答案。简单而且有效。