我有一个简单的Flask端点,我正在尝试使用pytest进行测试。端点在请求json中期望某个参数(my_param)。看起来像这样:
api = Flask(__name__)
@api.route('/myservice', methods=['POST'])
def run_service():
if 'my_param' not in request.get_json():
raise Exception('The required parameter \'my_param\' is missing.')
# rest of code here
端点按预期方式工作。但是,测试没有。这是我用于测试是否在请求中传递了必需的my_param参数的测试:
def test_raises_exception_on_missing_parameter(client):
with pytest.raises(Exception):
client.post('/myservice', json={'some_param': 'aa bb cc'}) # my_param not passed
我所有其他pytest测试都通过了,但是这次失败了。谁能看到为什么这个测试失败了?当未传递必需的参数时,端点引发Exception,因此我以为该测试将捕获该异常。谢谢。