模拟pyodbc连接

时间:2018-12-11 22:21:08

标签: python mocking pyodbc

我的课程有以下代码段。

class Sql_Workflow_Connector():

def __init__(self, server, database, username, password, sql_driver):
    self.server = server
    self.database = database
    self.username = username
    self.password = password
    self.conn = pyodbc.connect(driver=sql_driver, server=self.server,
                               port=1433, database=self.database, uid=self.username, pwd=self.password)
    self.cursor = self.conn.cursor()

我想为此使用pytest开始单元测试。

我需要模拟连接和游标。 我该怎么做呢?我想测试 init ,以下使用模拟连接和游标调用sql函数。

目前我的实现方式是

1 个答案:

答案 0 :(得分:1)

是否有可以使用 pytest 实施的解决方案?这样适合您的情况吗?

@pytest.fixture(autouse=True)
def _mock_db_connection(mocker, db_connection):
    mocker.patch('db.database.dbc', db_connection)
    return True

我从这里获取了此解决方案:Pytest mock db connection