파이썬에서 minimock 라이브러리를 사용하여 클래스의 __init__
메소드를 조롱하고 싶습니다.미니ock의 모의 메소드에서 객체의 "self"에 액세스하는 방법
def new_init():
print "NEW INIT"
는 A 클래스주는 인스턴스화 :
In [13]: a = A()
Called A.__init__()
NEW INIT
을 내가 new_init에서 자기 주장을 제거하면, 그러나
In [1]: import minimock
In [2]: class A:
...: def __init__(self):
...: print "REAL INIT"
...:
In [3]: def new_init(self):
...: print "NEW INIT"
...:
In [4]: minimock.mock("A.__init__", returns_func=new_init)
In [5]: a = A()
Called A.__init__()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-144b248f218a> in <module>()
----> 1 a = A()
D:\Tools\Python27\lib\site-packages\minimock\__init__.pyc in __call__(self, *args, **kw)
492 if self.mock_tracker is not None:
493 self.mock_tracker.call(self.mock_name, *args, **kw)
--> 494 return self._mock_return(*args, **kw)
495
496 def _mock_return(self, *args, **kw):
D:\Tools\Python27\lib\site-packages\minimock\__init__.pyc in _mock_return(self, *args, **kw)
505 raise Exception("No more mock return values are present.")
506 elif self.mock_returns_func is not None:
--> 507 return self.mock_returns_func(*args, **kw)
508 else:
509 return None
TypeError: new_init() takes exactly 1 argument (0 given)
:
이
은 인터프리터 (ipython)하는 일이다미니멈은 "자아"에 한계가 있다고 생각합니다.
minimock에 전달 된 메소드 조롱 된 버전에서 "self"를 사용할 수 있는지 알고 있습니까?
마지막으로, 나는 minimock을 조롱하는 대신에'__init__' 메쏘드를 스스로 바 꾸었습니다. – GDICommander