【发布时间】:2021-03-28 14:58:44
【问题描述】:
我有一个简单的路由器,旨在抛出HTTPException:
@router.get('/404test')
async def test():
raise HTTPException(HTTP_404_NOT_FOUND, "404 test!")
我想断言异常被抛出,按照FastaAPI docs:
def test_test():
response = client.get("/404test")
assert response.status_code == 404
在评估断言之前抛出异常,将测试标记为失败:
> raise HTTPException(HTTP_404_NOT_FOUND, "404 test!")
E fastapi.exceptions.HTTPException: (404, '404 test!')
在我的测试中正确预测 HTTPExceptions 缺少什么?
【问题讨论】:
-
似乎在get操作周围添加
with pytest.raises(HTTPException) as e:...形式的“上下文管理器”,然后像assert e.value.status_code == 404, response.text一样断言就可以了。但也许有更优雅的方式?