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')
これは、new_listビューのポストレスポンスをテストするためのメソッドです。 HttpRequest()を使用するとうまく動作し、HttpRequestではなくデータを投稿するためにinbuiltクライアントを使用しようとするとエラーがスローされます。Pythonによるテスト駆動開発 - 第6章
エラー:
======================================================================
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
----------------------------------------------------------------------
私は私がデータをポストするために、クライアントを使用する方法に問題があると思います。これは私が読んでいた教科書のセクションのlinkです。どんな助けもありがとうございます。
ジャンゴ - 1.9.5、 のpython - 3.5
エラーが発生した場合は、それが何であるかを明記する必要があります。 –
クライアントコールで 'lists/new'の代わりに'/lists/new/'を使ってみてください(先頭のスラッシュに注意してください)? –
@JoeyWilhelm私は、リストで始まり、url url(r '^ lists/new $'、views.new_list、name = 'new_list')で終わるURLを定義しました。しかし、私はそれが動作しませんでした。 – kiran6