使用RSpec测试Paperclip文件上载

时间:2010-07-28 23:47:52

标签: ruby-on-rails unit-testing rspec paperclip

我并不真正关心测试文件上传,但由于我的模型中有validates_attachment_presence等等,因此rspec抱怨。

所以现在我在规范中使用这些属性创建我的模型以尝试将其关闭:

@attr = {
  :name => "value for name",
  :title => "value for title",
  :content => "value for content",
  :pic_file_name => "example.jpg",
  :pic_content_type => "image/jpg",
  :pic_file_size => "8192",
  :pic_updated_at => nil
}

但这不起作用。

我发现了这个:http://fr.ivolo.us/posts/mocking-paperclip-with-rspec 所以我试过这样的事情:

Post.should_receive(:save_attached_files).and_return(true)

哪个也不起作用。我如何安抚RSpec?

1 个答案:

答案 0 :(得分:10)

如果是模型has_attached_file :pic,您应该只能将pic属性指向某个文件,而且所有属性都应该是花花公子。

含义如@attr = { :pic => File.open(File.join(Rails.root, 'spec', 'fixtures', 'file.png')) }