如何测试依赖于文件的before_create?

时间:2013-11-28 06:21:24

标签: ruby-on-rails testing

我的Rails应用程序模型中有以下代码:

class Image
  before_create :choose_background   
  ...

  private

  def choose_background
    image = ChunkyPNG::Image.from_file(self.image_path)
    background = ImageManipulator::get_background(image)
    self.background = background unless background.nil?
  end
end

现在我只是进行了这些测试:

require 'test_helper'

class ImageTest < ActiveSupport::TestCase
  test "should not save without a url" do
    image = Image.new
    assert !image.save
  end

end

image_path是指向Image路径的路线,ImageManipulator::get_background基本上会执行一些图像处理以查找背景。所以,我的问题是:我该如何测试呢?在哪里/如何放置这些图像以测试方法?

1 个答案:

答案 0 :(得分:0)

使用FactoryGirl,我会创建一个带有image_path的图像,该图像引用我放在/ spec / fixtures / files中的图像文件

测试本身看起来像

it "sets its background" do
  image = create(:image)
  expect(image.background).not_to be_nil
end