我有我的看法:
class MyView(APIView):
def post(...):
...
raise ValidationError('blah')
还有我的考验
def test_myview(...):
factory = APIRequestFactory()
request = factory.post('/myview', data=...)
with self.assertRaises(ValidationError):
MyView.as_view()(request)
我得到AssertionError: ValidationError not raised
我尝试调用它并打印调用结果:
def test_myview(...):
factory = APIRequestFactory()
request = factory.post('/myview', data=...)
resp = MyView.as_view()(request)
print(resp)
它是<Response status_code=400, "text/html; charset=utf-8">
,所以如果我想测试响应代码等,它是正确的,但是如果我想AssertRaises,我应该怎么做?
1条答案
按热度按时间db2dz4w81#
如果您正在寻找Assert验证错误消息的方法,您可以只检查响应的详细信息(假设包含'blah')。
DRF处理异常并返回400,这就是为什么你不能在单元测试中看到它。参见django-rest-framework.org/api-guide/exceptions