Djangoでunittest 第二回
フィクスチャの読み込みに関して、MiCHiLUさんにアドバイスをもらったので試してみた。
1.生成したフィクスチャをDjangoのプロジェクト配下に置く
2.TestCaseに、 fixtures クラス属性を指定する
(フィクスチャの読み込み から抜粋)
ユニットテストは、以下のように動作します
・ テストケースの開始時で、かつ setUp() の実行前に、 Django はデータベースを一掃して、データベースを syncdb 直後の状態に戻します。
・ 次に、テストケースクラスに指定した全てのフィクスチャをインストールします。上の例では、 mammals という名前の JSON フィクスチャと、 birds という名前のフィクスチャがインストールされます。フィクスチャの定義とインストールに関する詳細は loaddata のドキュメント を参照してください。
このフラッシュ/ロードの作業はテストケースの実行毎に繰り返されるので、テストの結果が他のテストや以前に実行したテストの影響を受けたり、テストの順番に左右されることはありません。
つまり、fixtures クラス属性にフィクスチャを指定しておくと
テスト開始時に自動的に読み込んでくれます。
"テストデータの読み込み、テストクライアントの生成からレスポンスの確認まで"を書き換えてみた
# vim: fileencoding=utf-8 from django.test import TestCase from django.test.client import Client class SimpleTestCase(TestCase): fixtures = ['task/fixtures/test.json'] def setUp(self): pass def test_details(self): response = self.client.get('/') self.failUnlessEqual(response.status_code, 200)