Dragonflyの画像ファイルを持つphotoモデルをRspec + FactoryGirl で testする
Dragonflyで画像ファイルを管理しているのですが、test方法のメモです。
テスト環境は Rspec + FactoryGirl ですが、Unit testとFixtureでも同じだと思います。
Dragonflyはtest時以下ディレクトリからファイルを探します
public\system\dragonfly\test\YYYY\MM
登録しようとする画像ファイル名が"IMG_0001.jpg"だとすると、Dragonflyの生成するuidはYYYY/MM/DD_HH_MM_SS_MLS_IMG_0001.jpgになるので、上記ディレクトリに "DD_HH_MM_SS_MLS_IMG_0001.jpg"という名前で画像ファイルを置けばよいです。
photo_spec.rbはこんな感じです。
# -*- coding: utf-8 -*- require 'spec_helper' describe Photo do describe "画像ファイル" do before do @jpg = create(:photo, photo_image_name: "OK.jpg", photo_image_uid: "2013/08/01_00_00_00_001_OK.jpg") end it { @jpg.should_not be_new_record } end end
上記specだと "public\system\dragonfly\test\2013\08\01_00_00_00_001_OK.jpg" というファイルを準備しておけば良いです。
参考までにphotoモデルはこんな感じ。
class Photo < ActiveRecord::Base attr_accessible :photo_image # For dragonfly image_accessor :photo_image end
ではでは。