Python中类的单元测试实例化

2024-10-03 11:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我围绕Cassandra驱动程序模块编写了一个包装器类,我正在为它编写单元测试。我可以单元测试是否调用了类的特定方法(例如connect)。然而,断言这一点是不够的。我想确保在实例化类时传递给包装器方法(即open_session)的参数是我期望的参数

在调用任何方法之前,如何对类的实例化进行单元测试

我的包装器类:

from cassandra.cluster import Cluster

class CassandraWrapper(object):
    def __init__(self, hosts, port):
        self.session = self.open_session(hosts, port)

    def open_session(self, hosts, port):
        cluster = Cluster(contact_points=hosts, port=port)

        return cluster.connect()

我的单元测试:

from cassandra_wrapper import CassandraWrapper
from unittest.mock import patch
import unittest

class TestCassandraWrapper(unittest.TestCase):

    @patch('cassandra.cluster.Cluster.connect')
    def test_open_session(self, connect_mock):
        cw = CassandraWrapper(['localhost'], 9042)

        connect_mock.assert_called_once()

Tags: 方法fromimportselfportsessiondefconnect