Django Rest Framework测试API响应断言

lin*_*ips 5 testing api django django-rest-framework

我找到了使用Django Rest Framework测试Django开发的API端点的理想方法.我正在使用集成的APITestCase并执行如下请求:

response = self.client.get('/resources')
Run Code Online (Sandbox Code Playgroud)

官方文档(http://www.django-rest-framework.org/api-guide/testing)声明最好使用response.datainstaed response.content.我的模型包括一个DateTimeField字段,response.data看起来像这样:

{'id': 1, 'issued': datetime.datetime(2014, 5, 3, 0, 0, tzinfo=<UTC>)}
Run Code Online (Sandbox Code Playgroud)

浏览器中的真实响应如下所示:

{"id": 1, "issued": "2014-05-03T00:00:00Z"}
Run Code Online (Sandbox Code Playgroud)

所以我不确定如何断言这两者是平等的!?

Amr*_*rit 0

为了断言这两者相等,您可以使用

`self.assertEqual( wanted_datetime,'got_datetime')`
Run Code Online (Sandbox Code Playgroud)

要比较 django 中的日期时间,您可以查看以下链接。

1.使用基于日期/时间的对象进行 Django 单元测试

2.如何在Django中比较日期