我正在为我的Python模块建立一些单元测试,该模块通过SQLAlchemy与MySQL数据库进行交互。从阅读资料得知,最好的方法是创建一个测试数据库,可以像真实数据库一样查询。我已经做到了这一点,但如何测试模块中现有的查询语句,因为它们当前都指向实时数据库?
我想到的唯一想法是执行以下操作:
def run_query(engine, db_name='live_db')
engine.execute(f'SELECT * FROM {db_name}.<table_name>')
当我在从 unittest
中运行该函数时,我可以传入 test_db
。是否有更好的方法?