したがって、テストできるモデルオブジェクトを作成するためのセットアップメソッドを持つテストクラスがあります。
class UserProjectTests(TestCase):
fixtures = ['admin_test.json']
def setUp(self):
...
self.project1 = Project.objects.create(
user=self.user_profile1,
product=self.product1,
module=self.module1,
model=self.model1,
zipcode=90210
)
self.project1.save()
def test_module_created(self):
...
def test_model_created(self):
...
def test_product_created(self):
...
def test_project_created(self):
#! what happened to pk<4???
result1 = Project.objects.get(pk=4)
self.assertEquals(result1.zipcode, 90210)
def test_user_cannot_edit_project_they_dont_own(self):
...
pk=4
私の質問は、テスト データベースで唯一のオブジェクトを取得するために呼び出さなければならないのはなぜですか? このテストをいくつかの関数の上に移動すると、テストに合格するために照会する必要がある pk が減少します。pk が自動インクリメントされるため、セットアップが実行されるたびに未使用のデータベースで開始されないようです。
これがなぜなのか誰か教えてもらえますか?どのテスト関数に表示されるかに関係なく、pk=1 を使用できるようにするにはどうすればよいですか?