我有一个行为像这样的实用程序方法
def my_patch_method(self):
pass
def patch_my_lib():
from mylib import MyClass
MyClass.target_method = my_patch_method
return MyClass()
此测试失败:
self.assertEqual(my_patch_method, patch_my_lib().target_method)
而这个有效:
self.assertEqual(my_patch_method.__name__, patch_my_lib().target_method.__name__)
由于补丁方法没有相同的名称,这仍然是可以接受的证明,它patch_my_lib()
正在做它付出的代价,但为什么第一个没有像我预期的那样工作?而且,有没有办法“修复”它?