我有一个函数,我给它一个可调用的函数。在我的测试中,我想检查这个函数的被调用和参数。
由于函数是在参数中给出的而不是导入的,所以我无法模拟它(或者我没有找到正确的方法)。
然而,我模拟了一个打字函数,因为它不在运行时使用,我知道它不会破坏任何东西。
它运作良好,但我不觉得它真的是 Pythonic。
是否有另一种方法可以让我可以检查调用号和参数(如模拟)?
这里是工作代码,package/my_file.py带有函数的文件
from typing import Callable, List
def generate_calls(function_to_call: Callable, arguments_to_give: List[int]):
for an_argument in arguments_to_give:
function_to_call(arg_1=an_argument)
测试文件:
from package.my_file import generate_calls
def test_call_with_arguments(mocker):
a_list = [1, 2, 3]
called_function = mocker.patch('package.my_file.Callable')
generate_calls(called_function, a_list)
# get the argument of the mock function when called
argument_dict = [one_call[1] for one_call in called_function.call_args_list]
assert argument_dict == [{'arg_1': 1}, {'arg_1': 2}, {'arg_1': 3}]
元芳怎么了
当年话下
随时随地看视频慕课网APP
相关分类