我正在做一些测试,我想模拟一个函数的一个参数。
例如,我得到如下函数:
def foo(arg1, arg2): 'do something'
并调用该函数:
foo(1, 2)
我想用3而不是2来修补它。这可能吗?
尝试了以下操作:
monkeypatch.setattr('foo', partial(foo, arg2= 3))
但我得到了类型错误:foo()为关键字参数“arg2”得到了多个值
有没有办法解决这个问题?
您只需将函数别名为:
old_foo = monkeypatch.foo def foo(arg1, arg2): return old_foo(arg1, 3) monkeypatch.foo = foo