小编Tri*_*sha的帖子

python 中的单元测试 - 我们可以在 python 中模拟 SQL 查询结果吗?

摘要:我有一个我想测试的方法。该方法涉及连接数据库、提取结果(从 SQL 查询)并将其保存到数据框中。

我想知道,有没有办法可以模拟从 SQL 查询检索到的结果?

我尝试了unittest库,创建了一个数据帧,就像从SQl查询收到的数据帧一样。但我无法弄清楚如何在测试时将此变量传递给方法。

请分享您的见解。 我的方法是这样的:

    try:
        db_connect = sqlite3.connect("address_zip.db")
        db_cur = db_connect.cursor()
        db_cur.execute(""" Select STD_ADDRESS,STD_CITY,STD_STATE from address""")
        sql_result=pd.read_sql_query(""" Select STD_ADDRESS,STD_CITY,STD_STATE from address""",db_connect)
        df = pd.DataFrame(sql_result, columns=['STD_ADDRESS', 'STD_CITY', 'STD_STATE'])
        print(f"The data from database is :\n {df}")
        db_cur.close()
        db_connect.close()
    except Exception as e:
        print(f"DB exception: {e}")

        return df
Run Code Online (Sandbox Code Playgroud)

在原始代码中对变量“df”执行了几个操作,我的议程是模拟这个对象df

但我无法理解怎么办?抱歉,这可能是非常基本的问题,我是 python 新手。

python unit-testing python-unittest.mock

6
推荐指数
1
解决办法
8172
查看次数