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

时间:2015-03-02 19:31:33

标签: python unit-testing

如果我有一个不断更改参数数量的函数(添加,删除,重构等),我如何在具有任意参数的测试中调用此函数?我只想测试当依赖返回True时,函数本身会引发一个异常。现在我有类似

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

1 个答案:

答案 0 :(得分:1)

虽然我不确定您的单元测试是否经过精心设计,但如果您需要此类功能,请使用此答案中提供的信息:Programmatically determining amount of parameters a function requires - Python我们可以看到我们如何获得您想要的内容。

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)