2012-01-25 3 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에서는'it'처럼 미리 썸네일이 있어야하고'do' 먼저 테스트를 작성하고 싶습니다. – berkes

+1

나는 attachment_definitions [: data]이 비어 있습니다. 그래서 Attachment.attachment_definitions [: attached_file] [: styles] [: small] 구조를 사용하여 작동하도록했습니다. –