Railscast suivant #385 & #386 J'ai ajouté une autorisation à mon application Rails 4 (rails 4.2.6, rspec-rails 3.4.2). Après l'ajout de l'autorisation, toutes les spécifications de mon contrôleur échouent.Les spécifications du contrôleur RSpec échouent après l'ajout de l'autorisation à l'application Rails4
Mes caractéristiques techniques sont toujours valides car dans la spécification, je me connecte en tant qu'admin pour effectuer des actions qui ne sont pas autorisées aux visiteurs (: edit,: update ...). Si je fais toutes les actions autorisées à un visiteur mes spécifications de contrôleur passent. Cependant, toute action que seul l'administrateur peut effectuer échouera dans la spécification du contrôleur.
Le générateur d'échafaudage crée un vide
let(:valid_session) { { } }
qu'il dit dans les commentaires:
# This should return the minimal set of values that should be in the session in order to pass any filters (e.g. authentication) defined in MyController.
Cependant, je ne sais pas comment configurer ceci: valid_session pour permettre l'authentification de passer.
Lorsque je tente la solution a écrit dans ce question:
def valid_session
controller.stub!(:signed_in?).and_return(true)
end
Je reçois cette erreur:
NoMethodError:
undefined method `stub' for #<MyController
Depuis, tous les nombreux chemins de dérivation de la logique doit être testé à un niveau inférieur (c'est-à-dire la spécification du contrôleur) plutôt que la spécification de fonctionnalité, comment puis-je faire passer les spécifications du contrôleur?
Comment configurer valid_session ou quelle autre méthode puis-je utiliser pour passer l'autorisation dans les spécifications de mon contrôleur?
Impossible de publier un exemple de code ici, donc de répondre à la réponse. –