Ale*_*lex 5 python unit-testing patch mocking
我目前正在为Python中的sqlite3包装器编写测试覆盖.目前我的代码看起来像这样:
import unittest
from unittest.mock import patch
from MemberDatabase import MemberDatabase
@patch('sqlite3.connect')
class MemberDatabaseTestCase(unittest.TestCase):
def test_dbConnect(self, mocksql_connect):
mdb = MemberDatabase('test.db')
mocksql_connect.assert_called_with('test.db')
def test_optionalCommit(self, mocksql_connect):
mdb = MemberDatabase('test.db')
mdb.optionalCommit()
self.assertTrue(mocksql_connect().commit.called)
Run Code Online (Sandbox Code Playgroud)
其他各种测试都mdb以相同的方式创建.MemberDatabase调用的构造函数sqlite3.connect().我想通过移动的分配整理测试用例了mdb到setUp().但是,sqlite3.connect()不会被setUp()模拟,因此这会导致实际sqlite3.connect()调用并创建真正的数据库连接.
有没有办法用打补丁sqlite3.connect()的setUp()?也许我需要在内部创建模拟setUp()而不是使用装饰器,但我认为使用装饰器方法的代码更清晰.另外,我读过如果我创建模拟
| 归档时间: |
|
| 查看次数: |
958 次 |
| 最近记录: |