我有一个带有这样一个模块的
python类:
xy.py
from a.b import ClassA
class ClassB:
def method_1():
a = ClassA()
a.method2()
然后我将ClassA定义为:
b.py
from c import ClassC
class ClassA:
def method2():
c = ClassC()
c.method3()
现在在这段代码中,当为xy.py编写测试时我想要mock.patch ClassC,有没有办法在python中实现呢?
显然我试过了:
mock.patch('a.b.ClassA.ClassC)
和
mock.patch('a.b.c.ClassC')
这些都没有奏效.
解决方法
您需要修补ClassC所在的位置,以便b中的ClassC:
mock.patch('b.ClassC')
或者,换句话说,ClassC被导入到模块b中,因此需要修补ClassC的范围.