Comment tester (en utilisant unittest) la sortie HTML d'une vue Django?
Je suis en train d'écrire des tests unitaires pour mon application Django. Cependant, je ne sais pas comment faire pour tester la sortie HTML de vue.
Il m'arrive parfois de vouloir vérifier si un élément contient certaine valeur, ou combien de ces éléments qui sont affichés, ou des choses comme ça. Comment puis-je faire de tels tests?
Je voudrais une solution qui utilise unittest
et de django reinhardt, propre django.test
.
Je sais que je peux utiliser Selenium ou Pyccuracy (qui utilise le Sélénium), mais Sélénium tests sont relativement lente en raison de la surcharge énorme de lancer un navigateur. Aussi, les tests unitaires du travail out-of-the-box avec django-couverture paquet.
source d'informationauteur Denilson Sá Maia
Vous devez vous connecter pour publier un commentaire.
Ces autres réponses sont aujourd'hui dépassées concernant les assertions. L'affirmation
assertHTMLEqual
(depuis Django 1.4) prend soin des choses comme le non-respect des espaces, et en ignorant l'ordre des attributs.J'ai toujours trouvé une combinaison de BeautifulSoupet assertContains et assertFormError de Cas de test est disponible affirmations de faire le tour.
Django, le framework de test est idéal pour cela.
Vérifier l'état du code et du contenu.
http://docs.djangoproject.com/en/1.2/topics/testing/#django.test.TestCase.assertContains
Vérifier le modèle. http://docs.djangoproject.com/en/1.2/topics/testing/#django.test.TestCase.assertTemplateUsed
Aussi, il permet d'utiliser
id="something"
des balises HTML pour le rendre plus facile de trouver des choses quand les tests unitaires. Nous avons des tests de ce genre.Fonctionne très bien.
Regarder Django avec affirme - qui utilise lxml.
https://django-with-asserts.readthedocs.org/en/latest/