Djangoでunittest
前回やったDjangoでテスト(POST,ログイン)をunittestで書いてみた
Djangoでは、unittest.TestCaseを更に拡張した django.test.TestCaseが
提供されているので、それを使います。
django.test.TestCase は、テストクライアントにデフォルトでアクセスすることができます。
テストデータの読み込み、テストクライアントの生成からレスポンスの確認まで
# vim: fileencoding=utf-8 from django.core import management from django.test import TestCase from django.test.client import Client class SimpleTestCase(TestCase): def setUp(self): options = dict(verbosity=0,) management.call_command('loaddata', 'task/fixtures/test.json', **options) def test_details(self): response = self.client.get('/') self.failUnlessEqual(response.status_code, 200)
ログインテスト、ログインユーザーのみ参照できるページの確認
def test_login(self): self.failUnlessEqual(self.client.login(username='kuma8', password='kuma8'), True) def test_view(self): response = self.client.get('/login_required/') self.failUnlessEqual(response.status_code, 302) self.client.login(username='kuma8', password='kuma8') response = self.client.get('/login_required/') self.failUnlessEqual(response.status_code, 200)
POSTリクエストの生成からログアウト
def test_post(self): self.client.login(username='kuma8', password='kuma8') response = self.client.post('/send/', { 'contents':'test2' }) self.failUnlessEqual(response.status_code, 302) self.client.logout()