6
votes

Comment vérifier si le texte apparaît à la page dans Test fonctionnel de rails?

J'écris actuellement des tests fonctionnels pour mon contrôleur, et je veux vérifier si une ligne

Ceci est une ligne de test

apparaît sur ma page.

J'ai essayé d'utiliser xxx

mais je pense que quelque chose est mal avec cette ligne.

Quelle est la meilleure façon de le faire dans les rails version 3?


1 commentaires

Veuillez ne pas continuer à mettre à jour le code dans votre question - il fait que le format Q & A tombe en morceaux.


3 Réponses :


5
votes

Je pense que vous recherchez: xxx

voir le docs pour plus d'informations sur assert_select .

Notez que la ligne ci-dessus dépend du texte enveloppé dans un < code>

étiquette et être une correspondance littérale. Si c'est dans une autre balise, vous devrez spécifier le sélecteur correct. Si vous souhaitez faire correspondre une regex, cela est également pris en charge, via: xxx

Notez que cela ne sera pas très performant, car il sera analysé par Tous

dans votre document. Considérons un sélecteur plus étroitement spécifié, comme une classe ou une pièce d'identité sur l'élément que vous ciblez.


2 commentaires

Je pense que mon problème est que ce problème est à l'intérieur d'un tas de divs, par exemple

Ceci est une ligne de test . Cela signifie-t-il que je dois spécifier que dans la balise? Comme div.div.div.p?


J'ai donc trouvé la réponse, j'ai ajouté une classe au p et à ASSERT_SELECT. P.Class puis "String" a travaillé comme un charme.



14
votes

sans spécifier une étiquette: xxx


0 commentaires

0
votes

Ceci fonctionne avec des rails 6: xxx

doc: https://www.rubydoc.info/github/jnicklas/capybara/capybara/node/matchers

(J'avais Paramètres inutilisés transmis à capybara :: Queries :: Sélecteur )


0 commentaires