Xha*_*ark 4 python pytest flask flask-restful
我开始使用 Flask 和 Pytest 来通过单元测试实现休息服务,但我遇到了一些麻烦。
我想为我的简单端点进行一个简单的测试,但Working outside of application context.在运行测试时我不断收到错误。
这是终点:
from flask import jsonify, request, Blueprint
STATUS_API = Blueprint('status_api', __name__)
def get_blueprint():
"""Return the blueprint for the main app module"""
return STATUS_API
@STATUS_API.route('/status', methods=['GET'])
def get_status():
return jsonify({
'status' : 'alive'
})
Run Code Online (Sandbox Code Playgroud)
这就是我尝试测试它的方式(我知道它应该无法通过测试):
import pytest
from routes import status_api
def test_get_status():
assert status_api.get_status() == ''
Run Code Online (Sandbox Code Playgroud)
我猜我只是无法在不构建整个应用程序的情况下尝试该方法。但如果是这样的话我真的不知道如何解决这个问题
Flask的测试文档非常好。
test client您应该创建一个所谓的,例如作为 pytest 固定装置,而不是导入视图函数。
对于我的最后一个 Flask 应用程序,它看起来像:
@pytest.fixture
def client():
app = create_app()
app.config['TESTING'] = True
with app.app_context():
with app.test_client() as client:
yield client
Run Code Online (Sandbox Code Playgroud)
(create_app是我的应用程序工厂)
然后您可以轻松创建测试,如下所示:
def test_status(client):
rv = client.get('/stats')
assert ...
Run Code Online (Sandbox Code Playgroud)
正如一开始提到的,官方文档确实很好。
| 归档时间: |
|
| 查看次数: |
15636 次 |
| 最近记录: |