j'utilisais le test suivant pour vérifier si la page décide de corriger modèle:tests unitaires dans Django avec des motifs url flexibles
from django.test import TestCase
class HomePageTest(TestCase):
def test_landing_page_returns_correct_html(self):
response = self.client.get('/')
self.assertIn(member='Go to the', container=response.content.decode())
def test_uses_test_home_template(self):
response = self.client.get('/test/')
self.assertTemplateUsed(response=response,
template_name='myapp/home.html')
je de nombreuses variantes de self.client.get('/test/')
ou self.client.get('/test/dashboard/')
etc. dans de nombreux de nombreux tests. Tous sont dans mon myapp.urlpatterns
. J'ai ensuite décidé de me débarrasser de /test/
. Ou simplement changer le modèle d'URL. Tous les tests ont échoué parce que, bien, j'ai codé en dur les URL.
Je voudrais utiliser des URL flexibles dans mes tests. Je suppose que cela implique quelque chose comme:
from myapp.urls import urlpatterns as myapp_urls
et en utilisant myapp_urls
pendant les essais.
J'ai deux questions:
- Comment puis-je mettre en œuvre?
- Y aura-t-il des effets secondaires (négatifs) de cette approche que je ne prévois pas?
Cela a fonctionné très bien. J'ai d'abord ajouté 'myapp.urls import urlpatterns as myapp_urls' au préambule. Ensuite, j'ai utilisé 'reverse ('myapp_urls: test_view_url')', où 'test_view_url' est le nom du modèle d'URL que j'ai utilisé dans' urlpatterns'. Merci! – HBat