2017-05-06 1 views
0

J'ai essayé de tester les téléchargements de fichiers Paperclip en utilisant RSpec avec Rails.Rails et RSpec: ActionController :: UnknownFormat erreur

Quand je lance le serveur, je n'ai aucun problème, mais quand je lance mon (très basique) test de RSpec, je reçois l'erreur suivante:

Failure/Error: visit root_path 

ActionController::UnknownFormat: 
    PhotosController#index is missing a template for this request format and variant. 

    request.formats: ["text/html"] 
    request.variant: [] 

Voici mon test:

require 'rails_helper' 

    feature 'photos' do 

     context 'no photos have been added' do 

     scenario 'should display prompt to add a photo' do 
      visit root_path 
      expect(page).to have_content 'No photos yet' 
      expect(page).to have_link 'Add a photo' 
     end 

     end 

    end 

Voici mon avis en haml:

- if @photos.any? 
    - @photos.each do |photo| 
    = image_tag photo.image 
    = photo.caption 
- else 
    %h1 No photos yet 


%h2= link_to "Add a photo", new_photo_path 

Voici mon modèle photo:

class Photo < ApplicationRecord 
    validates :image, presence: true 

    has_attached_file :image, styles: { :medium => "640x" } 
    validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/ 
end 

j'ai eu quelques problèmes avec un NoMethodError dans mon test en disant que has_attached_file était non reconnu, mais après googler largement j'ai trouvé quelqu'un eu de la chance en ajoutant un fichier paperclip.rb config/initializers ce qui suit:

require "paperclip/railtie" 

Paperclip::Railtie.insert 

Toute idée de pourquoi je pourrais éprouver ce problème, et comment je pourrais le surmonter?

Répondre

0

L'erreur vous indique qu'il ne trouve pas le gestionnaire de modèle pour la vue. Puisque vous utilisez Haml comme gestionnaire, vous devez ajouter le gem haml à votre fichier gem.

+0

Merci, mais il était déjà là, les vues chargées bien quand j'ai couru le serveur. – Freddy

+0

Avez-vous redémarré votre serveur après l'exécution de l'installation groupée? – hashrocket

+0

Vous devrez peut-être également arrêter le ressort («arrêt du ressort») pour que la gemme haml soit prise en compte dans les tests. – BoraMa