1

私は Python 単体テストを初めて使用しますが、接続を返すこの関数の単体テストを作成する方法がわかりません。

def connection(self):
    connection = mysql.connector.connect(host='localhost', 
                     database='test',
                     user='user', 
                     password='password',
                     auth_plugin='mysql_native_password')
    return connection
4

2 に答える 2

0

私は最近、Oracle MySQL Connector for Python をラップする、作成したカスタム クラスに対してこれを行いました。私は次のようなことをします:

import unittest
import mysql.connector

class TestConnection(unittest.TestCase):
    """Oracle MySQL for Python Connector tests."""

    connection = None

    def setUp(self):
        config = {
            user = 'user',
            password = 'password',
            host = 'localhost',
            database = 'test',
            auth_plugin = 'mysql_native_password'
        }
        self.connection = mysql.connector.connect(**config)

    def tearDown(self):
        if self.connection is not None and self.connection.is_connected():
            self.connection.close()

    def test_connection(self):
        self.assertTrue(self.connection.is_connected())

if __name__ == '__main__':
    unittest.main()

このソリューションは、各テストの前後にそれぞれ実行される およびによって提供されるメソッドに基づいていsetUp()ます。これにより、データベースに接続し、簡単な接続テストを実行してから、接続を閉じることができます。これにより、単体テストの完了後にハングする接続がないことが保証されます。tearDown()unittest

于 2019-04-18T11:35:57.690 に答える