Rails单元测试使用附件的功能

时间:2009-07-10 19:40:41

标签: ruby-on-rails unit-testing

我正在创建一个程序,它将检查由登录用户上传的图像。我已经编写了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

1 个答案:

答案 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