2020年9月20日日曜日

Djangoチュートリアル5での投票機能のテスト

DjangoでのPOSTのテスト

https://docs.djangoproject.com/ja/3.1/intro/tutorial05/#ideas-for-more-tests

Django公式チュートリアルの投票システムで、投票を実行した際のテストの記述を考える。

まず、新しいQuestionと、それに紐付く2件のChoiceを用意する。

まずは、単純にclient.postで、POSTデータを渡しつつURLを呼び出してみる。

この場合、レスポンスとしてはstatus_code=302が返って来る。

つまり、リダイレクト前のページ情報が取得されている。

参考:【Django】テストでリダイレクト先のページを検証する方法

https://qiita.com/kozakura16/items/c08b8cb8da12ace78658

リダイレクト先のページ内容まで検証する際は、client.post()メソッドの引数として、

follow=True

を渡してあげる。

これにより、最終的にリダイレクトされたページがレスポンスに入るので、出力の検証コードが記述できるようになる。

これは、公式ドキュメントの Testing Toolsページ内、getメソッドの項で触れられている。

https://docs.djangoproject.com/en/3.1/topics/testing/tools/#django.test.Client.get

0 件のコメント:

コメントを投稿