Django Framework - Test
テストの自動化
テストセットを作成すると、アプリケーションを変更するときに手動でテストする必要がなく、コードが予想通りに実行されることを確認できます.
モデル-エラー認識
$ python manage.py shell
以上のコマンドでshellを実行してテストエンコードを行います>>> import datetime
>>> from django.utils import timezone
>>> from polls.models import Question
>>> future_question = Question(pub_date=timezone.now() + datetime.timedelta(days=30))
>>> future_question.was_published_recently()
>>> True
Questionモデルに将来の時間を入力し、事前に作成したwas published new()関数を使用してチェックします.モデル→テストの作成
アプリケーションフォルダのテスト.pyファイルにテストするコードを配置します.
TestCaseを継承するクラスの作成
time:将来の時間ストレージ変数
future question:将来の時間をpub dateのQuestionオブジェクト変数とする
self.assertis(テストする関数、必要な戻り値):書かれた戻り値でない場合、エラーが発生します.
pythonでのself
selfの値はPythonが自動的に自分のインスタンスに渡すものである.
テストの実行
$ python manage.py test 앱이름
次の結果を表示し、エラーを修正します.View Test
Djangoは、テストクライアントクラスClientを提供し、ビューレベルでコードと対話するユーザをシミュレートする.このテストクライアントをテストします.pyまたはshellで使用できます.
View Test - shell
$ python manage.py shell
>>> from django.test.utils import setup_test_environment
>>> setup_test_environment()
>>> from django.test import Client
>>> client = Client()
以上の操作で、Viewでのテスト環境構成が完了しました.setup test environment():テンプレートレンダラーをインストールします.このメソッドはテストDBを設定しないため、テストは現在使用されているデータベースで行われます.
クライアント()クライアントクラスのテスト
>>> response.status_code
404
>>> from django.urls import reverse
>>> response = client.get(reverse('polls:index'))
>>> response.status_code
200
>>> response.content
b'\n <ul>\n \n <li><a href="/polls/1/">What's up?</a></li>\n \n </ul>\n\n'
>>> response.context['latest_question_list']
<QuerySet [<Question: What's up?>]>
status code:現在のページのステータスcontent:出力ページの文字列
context[「kwargs」]:パラメータ辞書資料を開く
View Test - tests.py
assertEqual():1番目のパラメータ値が2番目のパラメータ値と異なる場合、テストに失敗します.
assertContains(response, text, status_code=200):Responseインスタンスは、指定されたstatus codeを生成し、応答の内容にテキストが表示されることを確認します.テストに失敗しました(結果が異なる場合)
assertQuerysetEqual(QuerySet, values):2つのパラメータ値のクエリーセットが異なる場合、テストに失敗します.
more Test
Reference
この問題について(Django Framework - Test), 我々は、より多くの情報をここで見つけました https://velog.io/@dlwpdlf147/Django-Framework-7テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol