【发布时间】:2023-03-29 17:20:01
【问题描述】:
我正在尝试为包含在烧瓶应用程序(处理一些 RESTful 端点的微服务)中的文件编写单元测试。我遇到的一些事情:我似乎发现的所有文档和问题都涉及调用 API 本身,这不合适我需要使用我根据需要设置的模拟假请求直接调用 post 函数测试功能。
我可以尝试模拟 request.json 对象,但是我总是遇到“RuntimeError:在请求上下文之外工作”。我尝试使用 test_request_context() 但这会导致同样的问题。然后我开始更深入地研究 Flask 并尝试使用我们的 app.test_client() 但这有它自己的问题,除了直接调用端点并且不允许我正确地对我的函数进行单元测试,它们开始进入集成测试的领域.
这是我正在尝试测试的功能:
@api.route...
class HandleRoute(Resource):
@authentication #<-- I want to Mock True or False response
def post(self): #<-- I want to call directly
try:
if not request.json #<-- Value I want to mock, from flask.request
我该怎么办?我试图再次避免 app.test_client() 和其他与 Flask 相关的事情,这些单元测试的重点是检查我的代码路径作为健全性检查,而不仅仅是应该发生的事情。
【问题讨论】:
标签: python unit-testing flask