私はモックしている次の単純化されたクラスを持っています:
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()
2 番目のテストでは、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()
内部で呼び出しcheck()
てモックする代わりに、2 番目のテストから完全にモックされたを呼び出すため、最初のテストからの私のアサーションは失敗します。A()
check()
check()
テスト後にメソッドをクリアして「通常」に設定する方法はありますか? すでに試しmyClass.check.reset_mock()
ましたが、何もしないようです。テストの順序を移動しても何も起こりません。
http://pypi.python.org/pypi/mock/からPython用のモック1.0b1を使用しています