python 模拟:错误的参数数量错误
python mocking: wrong number of arguments error
我正在尝试使用模拟库并主要修补一些模块功能。所以,我有一些现有代码如下所示:
@patch('loader.utils.run_raise_exception_if_fail')
@patch('time.time', return_value=123)
def test_export_ok(self, _, run_command_mock):
....
calls = run_command_mock.call_args_list
这种工作正常,测试被调用和执行。我试图了解这些函数参数的含义以及它们的生成位置。我以前从未使用过模拟功能。
现在,我正在尝试模拟另一个函数并添加了以下补丁装饰器:
@patch('assessment.utils.statistics', return_value={"counts": {'volume': 10, hits=10}})
现在,当我尝试 运行 这个东西时,我收到以下错误:
TypeError: test_export_ok() takes 2 positional arguments but 4 were given
我对补丁装饰器和实际测试的这些函数参数感到困惑。统计方法的函数签名如下所示:
def statistics(collisions: np.ndarray,
obj_size: Union[List, Tuple]):
@patch('loader.utils.run_raise_exception_if_fail')
@patch('time.time', return_value=123)
def test_export_ok(self, a, b):
....
calls = run_command_mock.call_args_list
对于您正在编写单元测试的任何函数,如果在主函数中调用了一些 2 个内部函数并且您想要修补它。添加具有相应 return 值的 2 个补丁装饰器。在主测试函数“a,b”中添加与使用的补丁装饰器的数量相对应的变量。
请试试这个。
应该解决给出的参数数量不正确的错误。
我正在尝试使用模拟库并主要修补一些模块功能。所以,我有一些现有代码如下所示:
@patch('loader.utils.run_raise_exception_if_fail')
@patch('time.time', return_value=123)
def test_export_ok(self, _, run_command_mock):
....
calls = run_command_mock.call_args_list
这种工作正常,测试被调用和执行。我试图了解这些函数参数的含义以及它们的生成位置。我以前从未使用过模拟功能。
现在,我正在尝试模拟另一个函数并添加了以下补丁装饰器:
@patch('assessment.utils.statistics', return_value={"counts": {'volume': 10, hits=10}})
现在,当我尝试 运行 这个东西时,我收到以下错误:
TypeError: test_export_ok() takes 2 positional arguments but 4 were given
我对补丁装饰器和实际测试的这些函数参数感到困惑。统计方法的函数签名如下所示:
def statistics(collisions: np.ndarray,
obj_size: Union[List, Tuple]):
@patch('loader.utils.run_raise_exception_if_fail')
@patch('time.time', return_value=123)
def test_export_ok(self, a, b):
....
calls = run_command_mock.call_args_list
对于您正在编写单元测试的任何函数,如果在主函数中调用了一些 2 个内部函数并且您想要修补它。添加具有相应 return 值的 2 个补丁装饰器。在主测试函数“a,b”中添加与使用的补丁装饰器的数量相对应的变量。
请试试这个。
应该解决给出的参数数量不正确的错误。