Python:Patch无类函数,在测试类中的其他函数内部调用

时间:2016-06-10 10:22:34

标签: python testing mocking

我在utils文件中定义了两个函数,一个函数在其中调用另一个函数。像这样:

utils.py

def huge_db_call():
    return colossal_sql_query_what_i_dont_want_to_test
def main_function():
    variable = huge_db_call()
    some irrelevant stuff

但是现在我想在测试整个utils文件的测试类中测试它。主要问题是在main函数中调用的函数是一个巨大的db调用,我不能在测试中运行,在这种情况下,我更喜欢定义一个输出值,可以在巨大的db时调用调用函数不做他的事情并返回测试方法中的预定义输出。到目前为止,我已经尝试过这个:

test_utils.py

from mock import patch
class test():
    @patch('huge_db_call')
    def test_main_function(self, mock_huge_db_call):
         right_response = -- the_right_main_function_output
         reasonable_test_return = -- not_a_huge_db_call_but_a_controlled_test_case--
         mock_huge_db_call.return_value = reasonable_test_return
         response = utils.main_function()
         self.assertEqual(response, right_response)

但没有成功

有人可以帮我吗?

0 个答案:

没有答案