使用django-rest-framework中的APITestCase进行测试

18

我按照这段代码:

from django.core.urlresolvers import reverse
from rest_framework import status
from rest_framework.test import APITestCase

class AccountTests(APITestCase):
    def test_create_account(self):
        """
        Ensure we can create a new account object.
        """
        url = reverse('account-list')
        data = {'name': 'DabApps'}
        response = self.client.post(url, data, format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(response.data, data)

这里是django-rest-framewok文档中的内容:

DRF API指南:测试示例

我创建了一个只有一个字段name的单个Model,但仍然收到“错误请求400”错误。视图和reverse名称也正确设置,并且已手动测试了URL的查看成功。我没有启用身份验证

我无法弄清楚是否缺少步骤?

是否有人有django-rest-framework APITestCase create model object测试代码片段的工作示例?


1
你尝试过打印 response.errors 或者 response.data 吗? - meshy
@meshy,最后我只是跟着下面的git repo来让它工作。谢谢。 - Aaron Lelevier
2个回答

22

1
可能是JSON解码错误。
在代码行self.client.post(url, data, format='json')中使用json.dumps(data)并尝试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接