首页 > 解决方案 > 模拟:在调用时包装方法和接收参数

问题描述

我想知道是否有可能在我不拥有的代码深处的某个地方修补一个方法,使我可以在调用该方法之前或之后接收该方法将接收的参数,而无需实际引用其上的对象该方法正在被调用。

我希望能够做类似的事情

def wrapping(method, *args, **kwargs):
    # do stuff
    rv = method(*args, **kwargs)
    # more stuff
    return rv


with mock.patch('path.to.The.method', wraps=wrapping):
    code_that_eventually_calls_the_method()

然后当最终调用该方法时我会陷入包装,但我可以调用模拟方法而无需在测试代码中事先引用其对象。这是可以实现的吗?

标签: pythontestingmockingpatch

解决方案


推荐阅读