我在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)
但没有成功
有人可以帮我吗?