我找到了一种方法,但是有点奏效,但是可以用我的示例进行解释,它基于此响应,因此感谢@kindall:
def my_test(self):
import __builtin__
from mocker import Mocker, kwargs, ARGS
mymocker = mocker.mock()
mymocker.my_function(ARGS, kwargs)
mocker.throw(MyException)
def mysuper(*args, **kwargs):
if args and issubclass(MyClass, args[0]):
return mymocker
return original_super(*args, **kwargs)
__builtin__.original_super = super
__builtin__.super = mysuper
with mocker:
MyClass.myfunc()
所以本质上我要做的是检查super
调用是否来自我要模拟的类,否则只需执行normal即可super
。
希望这可以帮助某人:)