【发布时间】:2021-03-22 17:30:53
【问题描述】:
这可能是一个简单的问题,但我还没有找到类似的信息。我想测试一个 get 函数,它会抛出一个通用异常,以防万一模型失败。这是我的看法:
@api_view(['GET'])
def get_group(request):
"""
Returns all works
"""
try:
group = Group.objects.all()
serializer = GroupSerializer(group, many=True)
return Response(serializer.data)
except Exception as e:
return Response(data={'error': e.args}, status=500)
我有一个不会引发异常的测试,但我需要它来覆盖引发异常的测试,但我找不到方法。我已经尝试了几件事,但最接近正确的是这个。
def test_get_group_list_fail(self):
with self.assertRaises(Exception):
response = self.client.get('/groups/')
resultados = self.group.objects.all()
esperado = CrackingGroupSerializer(resultados, many=True)
self.assertNotEqual(esperado.data, ['fail'])
assert response.status_code == 500
如果有人知道解决方案,请提前表示感谢。
【问题讨论】:
-
如果您需要通用异常,请尝试
except: return HttpResponse(status=500)
标签: python-3.x django unit-testing django-rest-framework