django - Django Rest Framework APITestCase 不为所有字段使用 JSON 数据类型
问题描述
使用 DRF 的 APITestCase,我希望将 API 测试的结果序列化为 JSON 数据类型。具有属性的对象size = decimal.Decimal('20.0')
通过 API 端点正确发送为size: 20.0
(COERCE_DECIMAL_TO_STRING
参数设置为True
)。
但是,在使用 APITestCase 测试端点时,会保留原始数据类型。APIClient.get(url).response.data.get("size").__class__
=十进制。十进制
其他复杂类型也会发生同样的情况。
为什么是这样?是否可以更改为查看 API 客户端会收到什么?
解决方案
我认为您可能需要调用.json()
响应的方法
from rest_framework.test import APITestCase
class DRFTest(APITestCase):
def test_decimal(self):
res = self.client.get("some/-url")
self.assertEqual(
res.json()["size"],
20.0
)
推荐阅读
- c# - ASP.net MVC 自定义声明
- webpack - UNO、WASM:如何使用 webpack
- php - Codeigniter登录后如何在数据库中获取图像
- laravel - 如何在 Ovi 面板中添加命令以运行 Laravel cron 作业?
- python - 如何在同一个python`print`中显示两条信息
- php - 二进制搜索关键字阿拉伯语
- haskell - 为固定 API 的安全查询字符串编写 Haskell 选项数据类型
- linux - Linux内核显示“警告:在arch/x86/mm/pageattr.c:962 change_page_attr_set_clr”,没有解释
- javascript - VueJs,如何刷新通过创建函数获取的数据
- python - 当我的 python 版本是 3.9 时,为什么 python3 在命令提示符下不起作用?