Как проверить загрузку нескольких файлов с помощью Cucumber / Capybara? - PullRequest
9 голосов
/ 12 марта 2012

Я могу проверить загрузку одного файла

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

Но что, если у меня есть файловое поле с атрибутом multiple? Как я могу проверить загрузку нескольких файлов, используя Cucumber / Capybara?

Ответы [ 3 ]

12 голосов
/ 18 сентября 2013

HTML:

<input id="fileupload" class="photo-uploader" type="file" multiple="" name="images">

Капибара:

page.attach_file "images", ['path to file1.jpg', 'path to file2.jpg', 'path to file3.jpg']
  1. Найдите атрибут name <input> с type="file" и добавьте его как первыйпараметр.
  2. Добавьте путь к файлам в качестве второго параметра .Обратитесь к приведенному выше утверждению.Не используйте относительные пути для загрузки файла.
0 голосов
/ 18 марта 2012

Кажется, в настоящее время это невозможно с капибарой:

https://github.com/jnicklas/capybara/issues/37

0 голосов
/ 12 марта 2012

Перед тестированием нескольких файловых загрузок вы должны спросить себя, как вы собираетесь хранить несколько фотографий в одной модели.Одним из возможных решений для этого будет:

  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

После этого вы сможете понять, что нет разницы между тестированием загрузки одного или нескольких файлов.

...