Python 如何用任何参数填充函数?

Python 如何用任何参数填充函数?,python,unit-testing,Python,Unit Testing,如果我有一个不断更改参数数量(添加、删除、重构等)的函数,我如何在带有任意参数的测试中调用该函数?我只是想测试一下,当依赖项返回True时,函数本身会引发某种异常。现在我有点像 dependency.return_value = True self.assertRaises(Expcetion, function_being_tested, None, None, None, None, None) 如果您需要这种功能,我不确定您的单元测试是否设计得很好,但请使用以下答案中提供的信息:我们可以

如果我有一个不断更改参数数量(添加、删除、重构等)的函数,我如何在带有任意参数的测试中调用该函数?我只是想测试一下,当依赖项返回True时,函数本身会引发某种异常。现在我有点像

dependency.return_value = True
self.assertRaises(Expcetion, function_being_tested, None, None, None, None, None)

如果您需要这种功能,我不确定您的单元测试是否设计得很好,但请使用以下答案中提供的信息:我们可以看看如何获得您想要的

import inspect

def call_wrapper(func):
    num_args = len(inspect.getargspec(func)[0])
    return func(*([None]*num_args))
然后您的单元测试变成:

self.assertRaises(Expcetion, call_wrapper, function_being_tested)

它可能不会引发
expection
异常:)老实说,这似乎有些过分,但你可能是对的,我应该重构我的意思是你当然可以将它与
self.assertRaises(异常,正在测试的函数,*([None]*len(insect.getargspec(func)[0])一行)
但是,如果您经常使用该模式,将其分解可以让您重用它,并使查看代码的其他人更清楚地了解您正在做的事情。