我目前正在通过在python中创建一个单元测试套件来实现编写测试的第一次真实体验,并且我遇到了mock
框架的问题。
目前,我的函数有这样一行:
def data_function():
*Some code*
with AccountDBConnection(account_id) as adb: # Pulling data
data = adb.get_query_results(query)
*Some more code*
我试图测试正确调用函数get_query_results
。在我的测试中,我试图测试它:
@patch('package.module_that_defines_data_function.AccountDBConnection')
def test_data_function(self, mock_AccountDBConnection):
*Other assertions*
mock_AccountDBConnection.get_query_results.assert_called_once_with(ANY)
*more assertions*
不幸的是,每当我尝试运行此测试时,我都会收到一条AssertionError,声明get_query_results
永远不会被调用。它肯定被称为,我无法认识到这一点。我认为这是因为该方法是在函数内创建的对象实例上调用的,但我不知道如何让模拟识别。有没有人有任何建议?
非常感谢!