如何断言模拟连接的execute方法?

时间:2020-08-31 22:01:19

标签: python unit-testing mocking pytest

在单元测试中,我只想模拟数据库连接并断言我正在使用某个查询字符串执行db api。在我的单元测试中,它根本没有显示我称为执行。

def foo():
    # did not show code to setup connection and query
    connection = ...  
    query = ...

    with connection
        cursor = connection.cursor()
        cursor.execute(query)
        return cursor.fetchall()

在单元测试中

@patch("db_module.connect")
def test_query(connect):
    cursor = connect.cursor.return_value
    cursor.execute.return_value = ['foo']
    cursor.execute.called_once_with("SELECT * FROM my_table WHERE ....")

Pytest告诉我execute被调用0次。

我应该如何针对cursor.execute()进行模拟和断言?

0 个答案:

没有答案