2012-01-25 13 views
4

私はクリップを使って添付ファイル付きのバナーを持っています。クリップは、「スタイル」パラメータを使用して、アップロードされた画像のための「誘導体」を作成します。Rspecを使ったペーパークリップイメージスタイルのテスト

class Banner < ActiveRecord::Base 
    has_attached_file :image, 
        :styles => {:medium => "300x300>", 
           :thumb => "100x100>"} 
end 

私が好ましくようにディスクに全体の往復をテストしなくて、このattached_file世代をテストしたいです。私はバナーを作成し、ファイルを添付して特定の次元の特定のファイルが作成された場合はファイルシステムを調べることができますが、スタック全体をテストすることなく、焦点を当てた部分をテストする考えに反します。

添付ファイル:imageがPaperclipに特定のスタイルを持っているかどうかをテストするにはどうすればよいですか?

答えて

1

すべてのhas_attached_fileメソッドは、渡された定義をモデルに追加します。世代はペーパークリップで行われるため、テストする必要はありません。

出典: https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip.rb#L174

ただし、定義がattachment_definitions方法を使用して適切に作成されたことをテストできます。このようなもの:

it "has correct image style geometry" do 
    Banner.attachment_definitions[:data][:styles][:medium][:geometry].should == "300x300>" 
    Banner.attachment_definitions[:data][:styles][:thumb][:geometry].should == "100x100>" 
end 
+0

ありがとうございます。私はペーパークリップをテストする必要はないことを認識しています。 BDD-ingの場合は、最初にサムネイルを「do」にしてから、それを実装するようなテストを書いてみたいと思います。 – berkes

+1

私は空のattachment_definitions [:data]を持っていました。それで、Attachment.attachment_definitions [:attached_file] [:styles] [:small]の構造を使って動作させました。 –

関連する問題