Je cours via Michael Hartl's tutoriel de rails .
J'essaie de vérifier le titre de ma page. Le test ressemble à ceci: p> la section de la tête HTML ressemble à ceci p> Je reçois l'échec suivant P> 1) PagesController Obtenez 'Home' devrait
avoir le bon titre
Échec / Erreur: réponse.should avoir_selector ("titre",: contenu =>
"RUBY ON RAILS Tutorial Sample App |
Accueil")
attendu après la sortie pour contenir un rubis sur rails
Tutoriel Sample App | Accueil
étiqueter:
# ./spec/controlers/pages_controller_spec.rb:13:1
`bloquer (3 niveaux) dans ' p>
BlockQuote> Je m'attends à ce que cela passe. Qu'est-ce que je fais mal? J'utilise des rails 3 et RSPEC 2.0.0 P> P>
4 Réponses :
Les spécifications du contrôleur ne rendent pas normalement la vue complète, car elles sont destinées à tester des contrôleurs isolément. Vous pouvez dire à RSPEC de restituer la page entière en incluant la directive Cependant, vous devez vous demander si vous voulez vraiment vous demander Faites ceci, ou s'il aurait plus de sens d'écrire des spécifications d'affichage. p> BTW Vous pouvez également utiliser la syntaxe sélecteur CSS3 pour enregistrer quelques coups de frappe (peut-être inclure les correspondants Webrat pour cela): p> edit fort> p> pour rspec2, remplacer intégrate_views code> en haut de l'exemple de groupe:
intégrate_views code> avec
rendu_views code> < / p> p>
J'ai essayé de mettre la directive Inteint_Views en haut, mais maintenant, je reçois une erreur de syntaxe
Oops, vous devez être sur Rspec 2. Essayez render_views code>.
Merci, peut-être simplement éditer votre réponse pour dire que vous devriez utiliser Render_Views sur RSPEC 2?
Je soupçonne fortement que vous ayez une faute de frappe quelque part. p>
À compter de cet instant, je travaille à travers l'exercice 4 du chapitre 11. Chaque problème unique que j'ai eu avec le tutoriel s'est avéré être une faute de frappe de ma part. P>
Remarque: Je ne coupe pas et ne colle pas. Je me frappe dans tout le code à la main. P>
J'ai fait la cocule-coller la chose ... et cela a fonctionné parfaitement une fois que j'ai mis rendu_views au sommet
J'ai trouvé plus facile de passer à Capybara (j'utilise des rails 3.0.1, RSPEC 2.0.1, Ruby 1.9.2). Maintenant, vous pouvez faire quelque chose comme
Cette question a l'air vieux, ce qui explique pourquoi il y a maintenant une meilleure façon.
Les options suivantes pour moi: P>
it "has the correct page title", js: true do visit "/users/sign_in" # for example expect(page.title).to include "Sign In or Create a New Account" end
De plus, vous devriez être très prudent lorsque vous utilisez la méthode code> Inclure code> dans ce cas. Si vous avez cette chaîne dans le titre, il passera cependant des choses indésirables aussi. Je vous recommanderais d'utiliser la méthode eq code> dans ce cas, car elle échouera si la chaîne exacte n'est pas adoptée.