def test_saving_a_POST_request(self):
request = HttpRequest()
request.method = "POST"
request.POST['item_text'] = "A new list item"
response = new_list(request)
# response = self.client.post('lists/new', {'item_text': "A new list item"})
new_item = Item.objects.first()
self.assertEqual(Item.objects.count(), 1)
self.assertEqual(new_item.text, 'A new list item')
Dies ist die Methode zum Testen der Antwort nach dem Erscheinen der new_list-Ansicht. Es funktioniert gut, wenn ich HttpRequest() verwende, es wirft einen Fehler, wenn ich versucht habe, eingebauten Client zu verwenden, um (die kommentierte Zeile) die Daten anstelle von HttpRequest zu posten.Testgetriebene Entwicklung mit Python - Kapitel 6
Der Fehler:
======================================================================
FAIL: test_saving_a_POST_request (lists.tests.NewListTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/prabhath/PycharmProjects/superlists/lists/tests.py", line 95, in test_saving_a_POST_request
self.assertEqual(Item.objects.count(), 1)
AssertionError: 0 != 1
----------------------------------------------------------------------
Ich denke, es gibt ein Problem mit, wie ich den Client verwenden, um Daten zu senden. Dies ist die link für den Abschnitt in Lehrbuch, dass ich las. Jede Hilfe wird geschätzt.
Django - 1.9.5, Python - 3.5
Wenn Sie einen Fehler erhalten, sollten Sie sagen, was es ist. –
Könnten Sie versuchen, '/ lists/new /' anstelle von 'lists/new' in Ihrem Client-Aufruf zu verwenden (beachten Sie den führenden Schrägstrich)? –
@JoeyWilhelm Ich habe eine URL definiert, die mit lists beginnt und mit url url endet (r '^ lists/new $', ansichten.new_list, name = 'new_list'). Aber ich habe versucht, es hat nicht funktioniert. – kiran6