断言错误:未引发RequestValidationError

问题描述 投票:0回答:1

我有一个 pytest 测试用例,用于测试 fastapi post API 调用。该调用引发了validation_error。

Traceback (most recent call last):
File "/opt/venv/lib/python3.11/site-packages/starlette/\_exception_handler.py", line 44, in wrapped_app
await app(scope, receive, sender)
File "/opt/venv/lib/python3.11/site-packages/starlette/routing.py", line 70, in app
response = await func(request)
^^^^^^^^^^^^^^^^^^^
File "/opt/venv/lib/python3.11/site-packages/fastapi/routing.py", line 291, in app
raise validation_error
fastapi.exceptions.RequestValidationError: ...........

在我的测试代码中

with self.assertRaises(fastapi.exceptions.RequestValidationError):
    test_client.post(url=url, headers=headers, json=json)

所以我希望抑制 RequestValidationError。 但我看到失败的消息为

AssertionError: RequestValidationError not raised

我也尝试过通用的

ValidationError
with self.assertRaises(ValidationError):
它不起作用。

fastapi
1个回答
0
投票

如果您尝试向端点发送不正确的数据,它不会引发异常,而是返回一个响应,准确指示您发送的错误内容。尝试从响应中解析消息。

© www.soinside.com 2019 - 2024. All rights reserved.