如何解决模拟MongoDB以测试Flask中设计的REST API
我有一个Flask应用程序,其中REST API是使用flask_restful和MongoDB后端构建的。我想使用pytest和mongomock编写功能测试,以模拟MongoDB来测试API,但无法对其进行配置。任何人都可以指导我提供一个可以实现相同目标的示例吗? 这是我在conftest.py文件中使用的灯具:
@pytest.fixture(scope='module')
def test_client():
# flask_app = Flask(__name__)
# Flask provides a way to test your application by exposing the Werkzeug test Client
# and handling the context locals for you.
testing_client = app.test_client()
# Establish an application context before running the tests.
ctx = app.app_context()
ctx.push()
yield testing_client # this is where the testing happens!
ctx.pop()
@pytest.fixture(autouse=True)
def patch_mongo():
db = connect('testdb',host='mongomock://localhost')
yield db
db.drop_database('testdb')
disconnect()
db.close()
def test_mongo(test_client,patch_mongo):
headers={
"Content-Type": "application/json","Authorization": "token"
}
response=test_client.post('/users',headers=headers,data=json.dumps(data))
print(response.get_json())
assert response.status_code == 200
问题在于pytest不在使用testdb,而是在生产数据库中创建用户。配置中缺少什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。