2015-02-14 20 views
7

Tak więc z szynami 4.2.0 i najnowszym rspec wygenerowałem podstawowy test dla mojego kontrolera. Po prostu utknąłem, jak przetestować obraz spinacza w valid_attributes.Test kontrolera RSpec z spinaczem

Od wyszukiwanie wokół tej pory mam wymyślić ten (który nie działa):

let(:valid_attributes) {{name: 'The New Room', description: 'This is the brand new room', size: '250', capacity: '100', price: '650', picture: '#{rails.root}/spec/support/room-controller-valid.jpg', rmcat_id: '1'}} 

Czy istnieje inny sposób to zrobić? Czy muszę dołączyć pomocnika, aby spinacz działał z RSpec?

Błąd Dostaję w terminalu to:

Failure/Error: room = Room.create! valid_attributes Paperclip::AdapterRegistry::NoHandlerError: No handler found for "\#{rails.root}/spec/support/room-controller-valid.jpg

Odpowiedz

8

Spróbuj ustawić atrybuty metadanych Spinacz, zamiast zapewniać prawdziwą :picture załącznik.

... 
picture_file_name: 'room-controller-valid.jpg', 
... 

Jeśli sprawdzanie typu zawartość załącznika lub rozmiar, ustawić te atrybuty, a także:

... 
picture_file_name: 'room-controller-valid.jpg', 
picture_content_type: 'image/jpeg', 
picture_file_size: 1.megabyte, 
... 

Oczywiście, to nie minie plik do sterownika, więc nie trzeba plik, aby to osiągnąć. Ale twoja instancja modelu powinna przejść weryfikację. Z spinacza README:

Spinacz będą zawijać do czterech atrybutów (wszystko z przedrostkiem że przywiązanie jest nazwy, więc można mieć wiele załączników na modelu, jeśli chcesz) i dać im przyjazną przód. Te atrybuty to:

<attachment>_file_name 
<attachment>_file_size 
<attachment>_content_type 
<attachment>_updated_at 

Domyślnie tylko funkcja _file_name jest wymagana do działania spinacza. Musisz dodać _content_type w przypadku, gdy chcesz użyć sprawdzania poprawności typu treści: .

Powiązane problemy