2017-06-09 108 views
0

我簡化了我的代碼以顯示效果。Django:防止每次測試後自動刪除模型數據

class AccountTests(APITestCase): 
    def test_post_account(self): 
     """ 
     Ensure we can create a new account object 
     """ 

     # code that adds one user object and one signup confirmation object 
     ... 
     ... 

     # test we have one user and one confirmation code 
     # THIS PASSES OK. 
     self.assertEqual(User.objects.count(), 1) 
     self.assertEqual(SignupConfirmationCode.objects.count(),) 


    def test_post_confirmation_code(self): 
     """ 
     test sending confirmation code for an account just created 
     """ 
     # THIS FAILS 
     self.assertEqual(User.objects.count(), 1) 
     self.assertEqual(SignupConfirmationCode.objects.count(), 1) 

我知道test_post_account先運行,然後通過OK。 test_post_confirmation_code正在運行第二個,並因UserSignupConfirmataionCode「神奇地」在兩種測試方法之間失去其內容而被斷言。

如何防止第一次測試結束和第二次測試結束之間數據消失?

回答

1

你不知道。你設置你的測試,以便他們各自創建他們需要的數據。

第一次測試中用於設置用戶和確認的代碼應該提取到setUp方法中,該方法在每次測試之前運行。明白了。

+1

瞭解。從某種意義上說它是有道理的。有助於避免訂單混亂並保持測試獨立性。 – JasonGenX