所以我有一个测试类,它有一个设置方法来创建一个可以测试的模型对象:
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?