我目前正在为我的django应用程序构建一些单元测试,但是我的test_views测试在运行时总是返回一个错误,我不确定这意味着什么以及如何解决它。
我得到的错误是:
AttributeError: 'HttpResponse' object has no attribute 'data'
字符串
这是traceback:
File "C:\Users\t-dalour\app\blog\requests\unit tests\test_views.py", line 15, in test_user_can_register_successfully
self.assertEqual(res.data['email'], self.user_data['email'])
^^^^^^^^
型
下面是我的test_views.py代码:
from django.test import TestCase, Client
from django.urls import reverse
from requests.models import Post
from .test_setup import TestSetUp
class TestViews(TestSetUp):
def test_user_cannot_register_with_no_data(self):
res=self.client.post(self.register_url)
self.assertEqual(res.status_code, 200)
def test_user_can_register_successfully(self):
res=self.client.post(
self.register_url, self.user_data, format="json")
self.assertEqual(res.data['email'], self.user_data['email'])
self.assertEqual(res.data['username'], self.user_data['username'])
self.assertEqual(res.status_code, 201)
型
我试图在互联网上搜索这个错误的解决方案,但找不到任何与此相关的东西。我猜它和“res.data”部分有关吧?如果有人能帮我解决这个问题,我将非常感激
2条答案
按热度按时间olhwl3o21#
使用django测试客户端进行测试时,可以轻松访问响应数据
我希望你读过这些文档
祝你好运!
ahy6op9u2#
您需要读取
context
,或者如果它是DRF
/api-type view
,调用response
的.json()
方法。举例来说:
字符串