Wenn ich einen Test wie so haben ...Testen Django den HTML-Code Ihrer Homepage gegen den Inhalt einer Antwort
def test_home_page_returns_correct_html(self):
request = HttpRequest()
response = home_page(request)
expected_html = render_to_string('home.html', request=request)
self.assertEqual(response.content.decode(), expected_html)
Sobald ich ein Formular in geschweiften Klammern hinzuzufügen, z.B. {{ form }}
Der obige Test schlägt fehl, da die HTML-Datei das Formular nicht nur als Antwort ausgeben wird. Dies führt dazu, dass die Assertion nicht übereinstimmt. Gibt es einen Weg dahin, damit ich meinen HTML-Code noch gegen die Antwort testen kann?
render_to_string unterstützt ein Wörterbuch als zweiten Parameter oder verwendet c ontext-Schlüsselwort, das als Kontext zum Rendern der Vorlage verwendet wird. Sie müssen das Formular im Kontextwörterbuch senden. Siehe [django docs] (https://docs.djangoproject.com/de/1.9/topics/templates/#django.template.loader.render_to_string) –
Dies scheint jedoch ein bisschen seltsam zu sein. Es scheint, dass Sie den Code der Ansicht duplizieren und dann überprüfen, ob sie das gleiche Ergebnis liefern. Warum? Was soll das testen? –