我正在创建一个程序,它将检查由登录用户上传的图像。我已经编写了RMagick代码进行检查(基本上找出图像中是否有黑色像素),但我不知道如何为这个模型编写单元测试。
目前我正在使用paperclip将上传的文件附加到模型中,据我所知,它使用数据库中的许多字段来跟踪文件。我应该如何设置我的灯具,以便每次都能对相同的数据进行单元测试?
我的模特目前是:
class Map < ActiveRecord::Base
has_attached_file :image, :styles => { :small => "150x150>" }
validates_attachment_presence :image
validates_uniqueness_of :name, :message => "must be unique"
def pixel_is_black(x, y)
<code to return true if position (x,y) in image is black>
end
end
答案 0 :(得分:0)
最好阅读功能测试中fixture_file_upload
的用法
对于单元测试,我通常有一个拆解方法,一旦修改完就删除文件(虽然它可以用来复制原件,无论你想要什么 - 请参阅fileutils库)
def setup
FileUtils.cp 'original.jpg', '/path/to/where/file/exists/in/fixture.jpg'
end
def teardown
Fileutils.rm '/path/to/where/file/exists/in/fixture.jpg', :force => true
end