その5 テスト
Django におけるテスト
Django におけるテスト | Django ドキュメント | Django
各アプリのtests.pyに書く
python manage.py test xxxx で実行
モデルやビューごとに TestClass を分割する
class QuestionModelTests(TestCase): self.assertIs(q.something(), False)
アプリケーション内のtest.pyを実行する
TestCaseのサブクラスが対象
メソッドはtestで始める
self.assertXXXでチェックする
テスト用のデータベースが作成され、終了後クリーンアップされる
シェルでブラウザシミュレート
python manage.py shell
from django.test.utils import setup_test_environment setup_test_environment() from django.test import Client client = Client() response = client.get(reverse('polls:index')) response.content response.context['latest_question_list']
ビューのテスト
クライアントでアクセスして、レスポンスの中身を調べる。
Javascriptの振る舞いは確認できない。
response = self.client.get(reverse('polls:index')) # ステータスコードのチェック self.assertEqual(response.status_code, 200) # 表示内容のチェック self.assertContains(response, "No polls are available.") # 返されるcontextのチェック self.assertQuerysetEqual(response.context['latest_question_list'], []) self.assertQuerysetEqual(response.context['latest_question_list'],['<Question: Past question.>'])
インタラクションのテスト
LiveServerTestCase
その6 静的ファイルの扱い
静的ファイル (画像、JavaScript、CSS など) を管理する | Django ドキュメント | Django
css, javascriptなど
静的ファイルの参照先はSTATICFILES_FINDERSで定義される。
デフォルトで各アプリのアブフォルダを参照してくれる。
設定 | Django ドキュメント | Django
アプリフォルダの中にstaticを作成し、さらにアプリ名のサブフォルダを作る。
polls/static/polls/style.css
テンプレート内でstaticで絶対パスを生成。
{% load static %} {% static 'polls/style.css' %}
まとめ
ファイルの取扱は詳細を要確認。
ユーザーによるファイルアップロードなどは記載がないので、MEDIA_ROOTなどの設定を調べる。