RealClass를 사용하는 모듈을 사용하고 있으므로 액세스 할 수없는 내부 종속성이 있습니다.테스트를 위해 Python의 모듈에서 클래스를 어떻게 스텁링합니까?
테스트를 위해 RealClass의 기능을 대체하는 FakeClass를 만들 수 있기를 원합니다. 나는 개별적인 방법 대신 전체 수업을 대체하고 싶지 않다.
내가 뭘 원하는지 보이는 stubble을 보았지만 Mox 또는 다른 조롱하는 프레임 워크에이 기능이 있는지 궁금해하고 있었습니까? 아니면 무엇을 사용 하시겠습니까? 어쩌면 fudge, 원숭이 패치? 이 물건으로 베스트 프랙티스를 찾고 있습니다. 또한 유용한 예는 대단합니다.
의사 코드 :
from module import RealClass
class FakeClass
methodsFromRealClassOverridden
class Test(unittest.TestCase):
setup()
teardown()
test1()
stub(RealClass, FakeClass) // something like this, but really just want the functionality
classThatUsesRealClass // now will use FakeClass
UPDATE :
여기에 내가 그것을 발견 한 방법입니다. 완벽하지는 않지만 작동합니다.
예 : 나는 당신이 그렇게 난 그냥 내 2 센트를주는거야 의견/경험을 원한다고 생각
fake = FakeClass()
stub = stubout.StubOutForTesting()
stub.Set(RealClass, 'method_1', fake.method_1)
stub.Set(RealClass, 'method_2', fake.method_2)
당신도 '조롱'을 보게 될 수도 있습니다. – Daenyth
나는 조롱을 필요로하지 않으며 메소드를 호출 할 필요가 없으며 실제로 스터 빙 기능이 필요합니다. – dre
'From FakeClass from FakeClass from RealClass'와 같은 것이 당신을 위해서 일할 것입니까? –