如果允许多张图片(has_many),如何测试图片上传

时间:2015-09-24 15:56:55

标签: ruby-on-rails ruby-on-rails-4

我有一个指南,其中包含了很多指南。

guide.rb:

class Guide < ActiveRecord::Base
  belongs_to :user
  has_many :guide_pics, dependent: :destroy
  accepts_nested_attributes_for :guide_pics
end

guide_pic.rb:

class GuidePic < ActiveRecord::Base
  belongs_to :guide
  validates :guide_id, presence: true
  validate  :picture_size

  default_scope -> { order(created_at: :desc) }

  mount_uploader :picture, PictureUploader
end

上传者位于编辑指南视图中。

上传图片会进入我的指南控制器更新功能。我的guide_pics控制器中没有任何内容。

它正确地添加了图片,但我对如何编写测试以验证图片上传感到困惑。我想我必须修补guide_path,所以我尝试了这个:

test "add guide pic" do
  log_in_as(@user)
  guide = @user.guide
  get edit_guide_path(guide)

  pic = fixture_file_upload('Can Tho-0676.jpg', 'image/jpg')
  assert_difference 'GuidePic.count', 1 do
    patch guide_path(guide), guide: { picture: pic }
  end
end

补丁不会引发错误。但它没有为guide.guide_pics添加图片。

0 个答案:

没有答案