如何使用Rspec测试使用Paperclip的模型是否validation上传文件的大小?
该模型:
class Attachment true, :size => {:less_than => 20.megabytes} end
测试不起作用:
describe Attachment do it { should validate_presence_of :file } it { should validate_size_of :file } # validate_size_of does not exist end
我想避免将20 MB文件转储到repo中来测试它。 有没有一种方法类似于我上面尝试过的实际工作方式?
我这样做的最好方法是使用Paperclip内置的shoulda匹配器 。 该链接的文档非常好,但是这里有一个关于你可以用它做什么的文档的概述:
在spec_helper.rb中,您需要要求匹配器:
require "paperclip/matchers"
并包括模块:
Spec::Runner.configure do |config| config.include Paperclip::Shoulda::Matchers end
validation附件大小的示例:
describe User do it { should validate_attachment_size(:avatar). less_than(2.megabytes) } end
如果您有兴趣,可以在GitHub上找到匹配器的来源