我有以下我正在模拟的简化类:
class myClass(object):
@staticmethod
def A():
#...
def check(self):
#code...
value = self.A()
#more code...
在我的第一个测试中,我只模拟了方法 A
from django.test import TestCase
from mock import MagicMock
import myClass
class FirstTest(TestCase):
def setUp(self):
myClass.A = MagicMock(return_value = 'CPU')
def test(self):
#some tests
myClassObj = myClass()
myClassObj.check()
而在我的第二个测试中,我模拟了整个检查方法:
from django.test import TestCase
from mock import MagicMock
import myClass
class SecondTest(TestCase):
def setUp(self):
myClass.check = MagicMock(return_value = someObject)
def test(self):
#some tests
myClassObj = myClass()
myClassObj.check()
现在我的第一个测试中的断言失败了,因为它不是在inside调用check()
和模拟,而是从我的第二个测试中调用完全模拟的。A()
check()
check()
测试后有什么方法可以清除并将方法设置为“正常”?我myClass.check.reset_mock()
已经尝试过了,但它似乎没有做任何事情。移动我的测试顺序也无济于事。