0
나는 조롱 한 클래스 중 하나에서 테스트 값을 반환하는 메소드를 조롱하고 싶다. 내가 겪고있는 문제는 테스트 값을 반환하는 것이 아니라 조롱 된 메서드가 MagicMock 유형의 객체를 반환합니다.파이썬에서 클래스 객체 메소드의 반환을 조롱하다
코드는 꽤 고안되었지만 문제를 설명합니다.
SUT (sut.py) :
provider = None
class Provider():
def get_data(self):
return 'production data'
def get_provider():
return Provider()
def setup_provider():
global provider
provider = get_provider()
def do_worker():
return provider.get_data()
시험 (mocking.py) :
sut.get_provider = MagicMock(name='get_provider').return_value = provider_mock
그 할당 바인딩 : 당신은 당신의 체인 할당 혼동있어
import unittest
from mock import MagicMock
import sut
class TestWorker(unittest.TestCase):
def test_worker(self):
provider_mock = MagicMock()
provider_mock.get_data.return_value = 'test data'
sut.get_provider = MagicMock(name='get_provider').return_value = provider_mock
sut.setup_provider()
data = sut.do_worker()
# data comes back as type MagicMock
assert data == 'test data'
큰 감사 - 오른쪽 나는 두 선이 교차 얻고 있었다 - 나는 C# 및 자바 조롱 프레임 워크를 사용하여 많은 시간을 보냈습니다 - 아직 내 마음은 파이썬 감싸지고. – IUnknown