Python 中的连接单元测试

dra*_*ams 2 python python-unittest mysql-connector-python python-unittest.mock

我是 Python 单元测试的新手,我不确定如何创建此函数的单元测试以返回连接?

def connection(self):
    connection = mysql.connector.connect(host='localhost', 
                     database='test',
                     user='user', 
                     password='password',
                     auth_plugin='mysql_native_password')
    return connection
Run Code Online (Sandbox Code Playgroud)

Ada*_*ith 5

您可以模拟mysql.connector.connect并确保它被调用,但老实说,这可能是一个太小的单元,无法为您的单元测试提供任何好处。这只是委托对 的调用mysql.connector.connect,它本身应该被测试(通过mysql包)。

class TestConnection(unittest.TestCase):
    @unittest.mock('module_under_test.mysql.connector.connect')
    def test_connection(self, mockconnect):
        module_under_test.connection()
        mockconnect.assert_called()
Run Code Online (Sandbox Code Playgroud)

我想您还可以检查以确保它总是返回一些内容(以防止将来的修订忘记return退出该功能。

    # inside test_connection as above
        connection = module_under_test.connection()
        self.assertIsNotNone(connection)
        mockconnect.assert_called()
Run Code Online (Sandbox Code Playgroud)