gpt4 book ai didi

Python Django REST API 测试

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:17 24 4
gpt4 key购买 nike

作为我第一次尝试在 python 中创建 API 测试,我的测试文件目前如下所示:

from django.test import TestCase, RequestFactory
from customer.models import Customer, CustomerStatus
from customer.views import CustomerPartialView
from rest_framework.test import APIRequestFactory


import pprint
from django.utils import timezone

class CustomerTest(TestCase) :

def setUp(self) :
self.factory = RequestFactory()

self.cust_status = CustomerStatus.objects.create(
status_id=1,name="banned",description="test desc" )

self.customer = Customer.objects.create(
guid='b27a3251-56e0-4870-8a03-27b0e92af9e5',
created_date=timezone.now(),
status_id=1,first_name='Hamster')



def test_get_customer(self) :
"""
Ensure we can get a customer from db through the API
"""
factory = APIRequestFactory()
request = factory.get('/customer/b27a3251-56e0-4870-8a03-27b0e92af9e5')
reponse = CustomerPartialView(request)

#in here I need something to check:
#response.data.first_name = "Hamster"

我想要实现的是将虚拟数据插入数据库,然后使用 APIRequestFactory 检索单个客户记录并确保他们的名字与我期望的相符。

我已经设法做到了这一点,但不确定下一步该做什么。

我的问题是:

  1. 我走的路对吗?
  2. 如何测试我的结果,即 response.data.first_name = hamster?
  3. 是否有更好的方法来实现我想要实现的目标

我是 python 的新手,所以如果我的代码中有任何重大错误,我提前道歉。

谢谢

最佳答案

如果我理解正确,我认为你的问题可能是你使用 response.data.first_name 而不是 response.data['first_name'] 作为响应.data 是一个字典。

所以应该是这样的:

self.assertEqual(response.data['first_name'], 'Hamster')

或者,我推荐的是:

self.assertEqual(response.data['first_name'], self.customer.first_name)

我还认为将请求 url 更改为 '/customer/%s' % self.customer.guid 会更整洁一些节省您重新编写字符串的时间。

关于Python Django REST API 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30644131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com