所以,我一直在尝试为返回包含status_code
和content
的JSONResponse
的函数编写单元测试。函数看起来像这样:
def exception_handler(request):
return JSONResponse(
status_code=status.HTTP_404_NOT_FOUND,
content=jsonable_encoder({"detail": NotFoundException} if is_development() else {}),
)
我正在测试两种情况:is_development()
返回True
或False
。当我调用函数来测试它像这样:response = exception_handler(request)
我可以访问response.status_code
,但不能访问response.content
。为什么呢?我想要访问内容来检查它是否正确。
我真的无法重现你的问题。下面是在我的情况下工作的代码。
# ---- Some setup, to make your example work ----
from fastapi.encoders import jsonable_encoder
class status:
HTTP_404_NOT_FOUND = 404
class JSONResponse:
def __init__(self, status_code, content):
self.status_code = status_code
self.content = content
# ----- Here your code -----
def exception_handler(request):
return JSONResponse(
status_code=status.HTTP_404_NOT_FOUND,
content=jsonable_encoder({"detail": None} if is_development() else {}),
)
def is_development():
"""True and False work"""
return False
print(vars(exception_handler(None)))
输出:
{'status_code': 404, 'content': {}}
你能提供更多的信息吗?