首页 > 解决方案 > 如何在python中使用模拟json数据库文件

问题描述

我必须通过创建模拟 JSON 数据库文件对预定义数据进行UnitTest,并验证应用程序是否返回正确的信息。这是我的应用程序,具有getUsers 函数:

    from flask import Flask 

app = Flask(__name__)  


@app.route("/")
def hello():
    return "Hello World!"   

@app.route("/users")
def getUsers():
    # Opening JSON file
    f = open('users.json')  # users.json is the Database
    data = json.load(f)
    for value in data.values():
        value.pop('id')
    result_dict = json.dumps(data)
    return result_dict

我试图像这样嘲笑:

@patch('hello.getUsers')
def test_users(MockBlog):
    getUsers = MockBlog()      
    getUsers.return_value = requests.get('https://my-json-server.typicode.com/MosenzonTal/demo/db').json()
    response = getUsers()
    print(response)

我必须验证假数据库的 getUsers 输出。响应是: {'test_user1': {'id': 'tes1t', 'name': 'Test User 1', 'favorite_color': 'Black'} 但用户的 id 没有像我预期的那样被过滤掉. 为什么?该代码不应该在假数据库上应用 getUsers 吗?

标签: pythonunit-testingflaskmocking

解决方案


鉴于您正在更改https://my-json-server.typicode.com/MosenzonTal/demo/dbMockBlog的请求响应的返回值,您将获得存储在那里的数据(包括 id)。


推荐阅读