如果我有一个函数不断变化的参数(添加,删除,重构等),我怎么能在任意参数的测试中调用这个函数?我只想测试一下,当一个依赖项返回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)
虽然我真的不知道,如果你需要这种功能,在这个答案提供的信息工作单元测试都经过精心设计: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)
老实说,这似乎有点小题大做,但你可能是正确的,我应该重构 – Jae 2015-03-02 19:49:34
我的意思是你可以用'self.assertRaises(Exception,function_being_tested,*([None] * len(inpsect.getargspec(func)[0])))''将它排成一行,但如果你频繁地执行该模式,并使其他人在查看代码时更清楚一些。 – aruisdante 2015-03-02 19:51:20
它不会永远提高'大概Expcetion'例外:) – alecxe 2015-03-02 19:32:23