我应该如何对MySQL查询进行单元测试?

时间:2020-07-16 21:20:19

标签: python mysql unit-testing sqlalchemy python-unittest

我正在为我的Python模块构建一些单元测试,该模块通过SQLAlchemy与MySQL数据库连接。通过阅读,我了解到做到这一点的最佳方法是创建一个测试数据库,我可以查询该数据库,就像它是真实的一样。我已经做到了,但是我应该如何测试模块中的现有查询,因为它们当前都指向实时数据库?

我想出的唯一主意是做如下事情:

def run_query(engine, db_name='live_db')
    engine.execute(f'SELECT * FROM {db_name}.<table_name>')

当我从test_db运行函数时,我可以传入unittest。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

对于可扩展的测试方法,我建议使用中间DAL层,而不应该决定将查询路由到哪个DB。

Testing with a Test Database