2012-06-20 4 views
2

가정하자, 당신은 이와 같은 기능 unittest의를 작성하려면 :sys.stdin의 모형?

def test_me(instream): 
    out = "" 
    for line in instream: 
     out += foo(line) 
    return out 

하는 것은 일반적으로 다음과 같이 사용되는 :

test_me(sys.stdin) 

지금, 당신의 unittest의 당신은 사용하지 않습니다 하지만 sys.stdin의 행동을 모방 한 객체와 그 객체는 완전히 제어되어야합니다. 이렇게하면 함수를 그대로 테스트 할 수 있으며 원하는 모든 가짜 입력을 삽입 할 수 있습니다. 그 일을하기 위해 어떤 종류의 물건을 만들어야합니까?

+1

사용자 입력을 모의하려면'pexpect'를 확인하십시오. – avasal

답변

1

이 경우 instream 인수가 생성기로 사용됩니다. 따라서 발전기를 구현하면됩니다. 아마도 라인리스트가있는 함수를 제공 할 것입니다.