您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python单元测试:如何对包含数据库操作的模块进行单元测试?

Python单元测试:如何对包含数据库操作的模块进行单元测试?

您可以这样使用patch

from unittest.mock import patch, MagicMock

@patch('mypackage.mymodule.pyMysqL')
def test(self, mock_sql):
    self.assertIs(mypackage.mymodule.pyMysqL, mock_sql)

    conn = Mock()
    mock_sql.connect.return_value = conn

    cursor      = MagicMock()
    mock_result = MagicMock()

    cursor.__enter__.return_value = mock_result
    cursor.__exit___              = MagicMock()

    conn.cursor.return_value = cursor

    connectDB()

    mock_sql.connect.assert_called_with(host='localhost',
                                        user='user',
                                        password='passwd',
                                        db='db')

    mock_result.execute.assert_called_with("sql request", ("user", "pass"))
python 2022/1/1 18:36:03 有309人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶