python - 如何在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 吗?
解决方案
鉴于您正在更改https://my-json-server.typicode.com/MosenzonTal/demo/dbMockBlog
的请求响应的返回值,您将获得存储在那里的数据(包括 id)。
推荐阅读
- angular - ngfor 中的匹配键
- ios - SwiftUI 将 Swift 代码作为参数传递给可重用视图
- mysql - 如何确保列值始终以大写形式添加?
- kubernetes - 无法使用 JKube Maven 插件设置 JVM 设置
- mysql - xampp mysql 不工作(错误:MySQL 意外关闭。)
- python - 为什么当相关变量具有值时,我的 BeautifulSoup 代码会收到属性错误?
- flutter - 如何删除列中展开的小部件之间的空间?
- c# - 如何在 Any() 中使用 Any() 运行复杂查询。MongoDB 驱动程序 C#
- python-3.x - Django模型根据输入日期排序结果
- ios - “控制台”显示变量的 nil 值,而“变量视图”显示相同的值