我为我的API进行测试。当我运行两个测试时,我在第二个测试中得到self.user = User.objects.get(pk=48)
行的错误apps.users.models.DoesNotExist: User matching query does not exist.
。但是,如果我只运行一个测试,则测试通过。原因是什么?
class MyTestCase(APITestCase):
def setUp(self):
user_data = []
for i in range(1, 124):
user_data.append({
'email': 'first@mail.com'+str(i),
'first_name': "firstname"+str(i),
'last_name': "lastname"+str(i),
'ip_address': "192.168.0."+str(i),
})
users = User.objects.bulk_create([User(**i) for i in user_data])
self.user = User.objects.get(pk=48) # I get error in this line
def test_users_list(self):
...
def test_users_pagination(self):
url = reverse('users-list')
self.client.force_authenticate(self.user)
response = self.client.get(url, {'users_count': 24, 'page': 2})
在测试用例中定义的每个测试之前调用方法setUp
。正在发生的事情是第一个测试运行 setUp 并创建pk
值范围为 1 到 123 的用户,第二个测试创建pk
值范围为 124 到 246 的用户,因此没有用户具有pk=48
。
尝试根据另一个属性(如email='first@mail.com48'
(选择用户,您应该很好。