在 TEST 模式下从 Post 请求接收数据 Django Rest

Receive data from Post request in TEST mode Django Rest

如果令牌在登录后生成,我如何在测试模式下获取令牌

client = APIClient()
client.post('/api/login/', {'username': 'username', 'password': 'password'}, format='json')

并且在请求后必须返回 json 中令牌密钥的响应。使用对开发服务器的请求工作正常,但如何在测试模式下使用?

你可以使用 django-rest-framework 测试用例。当测试用例运行时,它将创建一个新数据库,因此我们在数据库中没有任何数据。 之后它将调用方法 setUp 来创建在测试中使用的所需数据。

from rest_framework.test import APITestCase

class AccountTests(APITestCase):

   def setUp(self):
       super(AccountTests, self).setUp()
       user = User.objects.create(user_name='username')
       user.set_password('password')
       user.save()
       self.token = Token.objects.create(user=user)

   def test_login(self):
      url = '/api/login/'
      data = {'username': 'username', 'password': 'password'}
      response = self.client.post(url, data, format='json')
      # key = response.json()['token']
      # self.assertEqual(key, self.token.key)