您将如何对这个SQLAlchemy核心查询/函数进行单元测试?

2024-04-27 02:42:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习如何正确地进行单元测试。给定此函数

def get_user_details(req_user_id):
    users = sa.Table('users', db.metadata, autoload=True)

    s = sa.select([users.c.username,
                   users.c.favorite_color,
                   users.c.favorite_book
                   ]).select_from(users)

    s = s.where(users.c.user_id == req_user_id)

    result = db.connection.execute(s).fetchone()
    return dict(result)

…单元测试的正确方法是什么

这就是我现在的位置

  1. 据我所知,测试查询的“构造”是不必要的,因为这是已经经过良好测试的SQLAlchemy库的一部分。所以我不需要测试生成的原始SQL,对吗?但是我应该测试传递的参数吗?如果是,如何测试
  2. 我读过关于嘲笑来自db.connection.execute的响应的文章,但是这到底是如何测试任何东西的呢?最后,我想确保函数生成正确的SQL并获得正确的数据库结果

非常感谢您的任何建议/指导。谢谢大家!


Tags: 函数idexecutedbsqldefsa单元测试