2014-02-27 2 views
1

파이썬에서 "아무렇지 않은"더미 객체를 생성 할 수 있습니까? 파이썬에서는 언제나 아무 작업도 수행하지 않고 아무런 호출을하지 않거나 조작하지 않아도 오류가 발생하지 않습니까?파이썬에서 더미 객체

일반적인 경우에 부작용을 만드는 데 사용되는 개체가 있지만 다른 환경에서 실행되는 경우 (개발 중일 때) 아무 것도 수행해서는 안되며 자동으로 실패하는 경우입니다.

try: 
    o = Obj() 
except ImportError: 
    # we're in development mode 
    o = DummyObj() 

o.doStuff() # should work or fail silently 

답변

6

Mock 개체를 사용해보세요. Mock 개체를 호출하면 다른 Mock 개체가 반환됩니다. 예를 들어

:

>>> from mock import Mock 
>>> test = Mock() 
>>> test.doStuff() 
<Mock name='mock.doStuff()' id='4373729360'> 
>>> test2 = test.doStuff 
>>> test2 
<Mock name='mock.doStuff' id='4373693712'> 
>>> test2() 
<Mock name='mock.doStuff()' id='4373729360'> 

다음과 같이, 그것은 일치 - doStuff() 여러 번 호출하면 동일한 Mock을 반환하고 mock.doStuff하여 Mock 생성을 호출하는 경우가 doStuff() 같은 Mock를 반환합니다.

모의 개체는 일반적으로 단위 테스트에서 사용되므로 여기에 표시된 것보다 훨씬 많은 작업을 수행 할 수 있습니다. 관심이 있으시면 here을 읽으십시오.

+0

그래,이게 내가 찾고 있던 것이다. 나는 '모의 (mock)'를 사용하지 않고이 일을 처리하는 더 간단한 방법이 있다고 생각했지만,이 방법은 모든 단일 시나리오를 처리한다. 감사! –

+1

모의 작업을하지 마십시오! – holdenweb

관련 문제