如何在python中模拟unittest sqlite连接

2024-10-02 00:19:45 发布

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

我在Pycharm环境下使用python3.6

我想模仿sqlite3.connect。例如,在TestDatabase(见下文)中,我希望test_sqlite3_connect返回字符串连接,而不是实际的self.db_conn对象

我试过了,但不管用

class Database:
    def __init__(self, conn_string):
        self.db_conn = sqlite3.connect(conn_string, check_same_thread=False)
        self.db_conn.row_factory = self.dict_factory
class TestDatabase(unittest.TestCase):
    def setUp(self):
        self.db_conn = db.Database('videodetector.db')


    def test_sqlite3_connect_success(self):
        sqlite3.connect = MagicMock(return_value='connection succeeded')
        db_conn=db.Database('videodetector.db')
        sqlite3.connect.assert_called_with('videodetector.db')
        self.assertEqual(db_conn, 'connection succeeded')

Tags: testselfdbstringfactorydefconnectconnection

热门问题