[RUBY] Test des messages d'erreur: Notes du didacticiel Rails - Chapitre 7

Tutoriel Rails 6.0 Chapitre 7 7.3.4 Test au moment de l'échec Record de trébuchement lors du dernier exercice

Contenu de l'exercice

"Ecrivez un test pour le message d'erreur implémenté dans le Listing 7.20. Je vous laisse le soin de le tester en détail. J'ai fourni un modèle pour le Listing 7.25 pour votre référence."

répondre

Utilisez assert_select C'est une bonne idée de vérifier la structure HTML pour des éléments spécifiques à la connexion incorrects.

Contenu du partiel créé juste avant (Ce contenu est inséré dans new.html.erb)

ruby:/sample_app/app/views/shared/_error_messages.html.erb


<% if @user.errors.any? %>
  <div id="error_explanation">
    <div class="alert alert-danger">
      The form contains <%= pluralize(@user.errors.count, "error") %>.
    </div>
    <ul>
    <% @user.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
    <% end %>
    </ul>
  </div>
<% end %>

Si @ user.errors existe, Une balise div contenant une classe spécifique ("alert" & "alert-danger"), id ("error_explanation") est développée

Tant que cela est inclus dans le code HTML final transmis au navigateur, assert_select'Selector (classe: div.class, id: div # id) ' Confirmez-le avec

Le formulaire rempli est le suivant

/sample_app/test/integration/users_signup_test.rb


require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

  test "invalid signup information" do
    assert_no_difference 'User.count' do
      post users_path, params: { user: { name: "",
                                         email: "user@invalid",
                                         password: "foo",
                                         password_confirmation: "bar"} }
    end
    assert_template 'users/new'
    assert_select 'div.alert'
    assert_select 'div.alert-danger'
    assert_select 'div#error_explanation'
  end

end

La structure vérifiée par assert_select, Visuellement affiché dans les outils de développement de Google Chrome スクリーンショット 2020-06-04 17.50.58.png

c'est tout

Ce que je ne comprends pas (pour l'auto-apprentissage)

Utilisez correctement "" et "" Je pense que "" est préférable pour indiquer explicitement qu'il s'agit d'une chaîne de caractères, Le sélecteur est spécifié comme '' '

Recommended Posts

Test des messages d'erreur: Notes du didacticiel Rails - Chapitre 7
11.1 Ressource AccountActivations: Mémorandum du didacticiel Rails - Chapitre 11
[Rails] Solution de contournement pour les classes générées automatiquement avec des messages d'erreur de conception
[Rails] Localisation japonaise des messages d'erreur
tutoriel sur les rails
rails tutry
tutoriel sur les rails
rails tutry
tutoriel sur les rails
tutoriel sur les rails
[Rails] Comment afficher les messages d'erreur individuellement
[Ruby / Rails] Mécanisme de nouvelle tentative d'erreur de thread
11.2 Envoyer un e-mail d'activation de compte: Notes du didacticiel Rails - Chapitre 11
La route vers la japonaisisation des rails conçoit des messages d'erreur
tutoriel rails Chapitre 6
Test du tutoriel sur les rails
tutoriel rails Chapitre 1
Mémorandum du didacticiel Rails 1
Tutoriel Rails Memorandum 2
tutoriel rails Chapitre 7
tutoriel rails Chapitre 5
tutoriel rails Chapitre 10
tutoriel rails Chapitre 9
tutoriel rails Chapitre 8
[Rails] Comment émettre des messages de réussite et d'erreur
[Débutant] Tutoriel Rails
[Ruby on Rails] Affichage individuel des messages d'erreur
J'ai changé la façon dont le didacticiel Rails fonctionne: Notes du didacticiel Rails - Chapitre 9
Rails constante non initialisée Une simple liste de contrôle pour la résolution des erreurs
Localisation japonaise des messages d'erreur Rails [objets de conception / formulaire, etc.]
Que dois-je utiliser pour le framework de test [Rails]
[Note] Liste des erreurs de rails
À propos des messages d'erreur Ruby
Erreur de routage Catch Rails
Tutoriel Rails Chapitre 3 Apprentissage
Erreur d'installation de Mac Rails
[Rails] Didacticiel Apprendre avec les rails
Mémorandum du didacticiel Rails (Chapitre 3, 3.1)
Tutoriel Rails Chapitre 4 Apprentissage
Tutoriel Rails Chapitre 1 Apprentissage
Tutoriel Rails Chapitre 2 Apprentissage
rails Tutorial Fighting Record III
Tutoriel pour créer un blog avec Rails pour les débutants Partie 1
SassC :: SyntaxError in Pages # index Remède survenu pendant le didacticiel intermédiaire Rails5