所以我必須具有設置methiod創建可對被測試的模型對象測試類:Django的測試增加PK的問題
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減少。似乎每次安裝程序運行它都不會從一個處女db開始,因爲pk是自動遞增的。
誰能告訴我這是爲什麼?無論在哪個測試函數中出現,我應該怎麼做才能使用pk = 1?
好的。出於興趣 - 測試運行者是否不使用'truncate'來刷新表格?我認爲這會將自動增量值返回到0。 –