2017-05-25 205 views
0

這是我的UserTestCase(APITestCase)類中的兩個函數。資本變量是不變的。有沒有什麼方法可以測試API,而不是在test_create_user函數中創建過多的常量和類似「data」的數據? django中的初始數據測試的最佳做法是什麼?django - 測試中的初始數據

def setUp(self): 
    self.client = APIClient() 
    # create staff 
    self.admin = User.objects.create_user(email=ADMIN, password=PASSWORD) 
    self.admin.is_staff = True 
    self.admin.is_active = True 
    self.admin.save() 

    self.user = User.objects.create_user(email=ADMIN, password=PASSWORD) 
    self.user.is_active = True 
    self.user.save() 

def test_create_user(self): 

    login = self.client.login(email=ADMIN, password=PASSWORD) 
    self.assertTrue(login) 

    data = { 
     'email': EMAIL, 
     'password': PASSWORD, 
     'first_name': FIRSTNAME, 
     'last_name': LASTNAME, 
     'nationality': NATIONALITY, 
     'is_active': True, 
    } 

    # configure urls 
    url = reverse('apiv2:user-list') 
    # url1 = reverse('apiv2:user-detail', args=[self.user.id]) 

    # create new user 
    user = self.client.post(url, data, format='json') 
    self.assertEqual(user.status_code, 201) 

    # login after create 
    login = self.client.login(email=string_normalize(
     self.data.email), 
     password=PASSWORD 
    ) 
    self.assertTrue(login) 

    self.client.logout() 
+0

你在找什麼叫做「燈具」。在你正在使用的測試框架的文檔中尋找這個詞。 –

+0

我不需要真實數據庫的轉儲數據。例如,我只需要一些字段,以便測試PUT API。 @HåkenLid – achilles

+0

是的。無論您是使用數據庫轉儲還是在設置功能中創建它,它仍稱爲夾具數據。 –

回答

1

我建議使用一些模擬庫如Model Mommy基於Django的模型聲明輕鬆創建您的燈具。最有可能的是,您將在測試的setUp方法中加載初始數據。