Python Djangoでのユニットテストの書き方について解説します。DjangoのユニットテストはPython標準のテストモジュールunittest
機能を拡張したものであり、テストケースはunittest.TestCase
の継承クラスであるdjango.test.TestCase
を継承して記述します。
Djangoの環境構築
まずは、Djangoの環境を構築します。作業用のディレクトリを作成し、その中でpipenvを使って仮想環境を構築します。
mkdir blog
cd blog
pip install pipenv
pipenv shell
次に、Djangoをインストールします。
pipenv install django
Djangoプロジェクトの作成
Djangoプロジェクトを作成します。
django-admin startproject mysite
Djangoアプリの作成
次に、Djangoアプリを作成します。
./manage.py startapp myapp
テストケースの作成
テストケースはdjango.test.TestCase
を継承して作成します。
from django.test import TestCase
from myapp.models import Animal
class AnimalTestCase(TestCase):
def setUp(self):
Animal.objects.create(name="lion", sound="roar")
Animal.objects.create(name="cat", sound="meow")
def test_animals_can_speak(self):
"""Animals that can speak are correctly identified"""
lion = Animal.objects.get(name="lion")
cat = Animal.objects.get(name="cat")
self.assertEqual(lion.speak(), 'The lion says "roar"')
self.assertEqual(cat.speak(), 'The cat says "meow"')
テストの実行
テストが書けたら、プロジェクトのmanage.py
ユーティリティのtest
コマンドでテストが実行できます。
./manage.py test
以上がPython Djangoでのユニットテストの書き方になります。この方法を使えば、Djangoを使ったことがない人でもユニットテストを書けるようになるはずです。.