我使用模拟库和unittest2来测试我的软件项目的不同方面。在
目前我有一个问题:是否可以模拟一个函数,使默认关键字参数不同,但功能仍然存在?在
假设我有以下代码
class C():
def fun(self, bool_arg = True):
if bool_arg:
return True
else
return False
如果我想嘲笑C.fun怎么办:
^{pr2}$
因此,每个C实例都将关键字“bool_arg”替换为False,而不是True和以下结果:
c = C()
c.fun()
退货:
False
Tags:
您也可以尝试包装您的函数。有东西在网上
以及
^{pr2}$应该行得通
编辑
如果要更改类的默认值而不是特定实例的默认值,可以创建一个派生类并重新定义
fun
包装C
的方法。线上有东西(我现在没有时间测试):然后关于@Ber的建议,您可以定义}do
def wrapper(func, **wrapkwargs)
,然后代替{您可以尝试使用以下代码:
希望这有帮助
相关问题 更多 >
编程相关推荐