我试图在测试期间替换方法函数。原来的方法比较复杂,所以我想用一个简单的函数来代替它进行测试。在
我试过使用模拟库。但看起来它只修改在测试用例中直接创建的对象。如果测试用例中的其他函数调用该方法,则不会替换该方法。在
class Class1:
def foo(self):
#do a lot of calculation
return 1
import mock
from .class1 import Class1
from .class2 import Class2
class Class1:
def foo(self):
# no calculation
return 2
@mock.patch.object(Class1, "foo")
def test_case(mock):
my_class2 = Class2()
assert my_class2.doo() == 2
我试图将类1中的foo()替换为在中创建的新foo()测试.py. 但是因为Class1对象是在Class2对象内部创建的,所以该方法不会以这种方式被替换
你必须嘲笑正确的事情。}都有自己的全局作用域)。在
Class2.doo
创建class2.Class1
的实例,而不是test.Class1
(在模拟时,名称是重要的,并且class2
和{相关问题 更多 >
编程相关推荐