때로는 모듈이나 클래스의 개인 함수가 아직 추출되지 않은 내부 기능 단위이므로 자체 테스트가 필요할 수 있습니다. 그렇다면 왜 테스트하지 않습니까? 우리는 것이다 그들이 추출 할 때 경우 / 나중에 그들을 위해 테스트를 작성. 그렇다면 여전히 동일한 파일의 일부인 테스트를 작성하지 않겠습니까?
시연하려면 :
먼저 나는 썼다 module_a
. 이제 테스트를 작성하고 싶습니다. 'private'기능을 테스트하고 싶습니다 _private_func
. 나중에 테스트를 작성하지 않는 이유를 이해하지 못합니다. 나중에 나중에 자체 내부 모듈로 리팩터링 한 다음 테스트를 작성할 수 있습니다.
다음 기능을 가진 모듈이 있다고 가정하십시오 (클래스 일 수도 있음).
def public_func(a):
b = _do_stuff(a)
return _do_more_stuff(b)
_do_stuff
및 _do_more_stuff
모듈의 '개인'기능은 다음과 같습니다.
구현 세부 정보가 아니라 공용 인터페이스 만 테스트해야한다는 생각을 이해합니다. 그러나 여기에 있습니다 :
_do_stuff
및 _do_more_stuff
모듈의 기능의 대부분을 포함하고있다. 그들 각각은 다른 '내부'모듈의 공용 기능 일 수 있습니다. 그러나 그것들은 아직 진화되지 않았고 파일을 분리하기 위해 추출 될만큼 충분히 크지 않았습니다.
따라서 이러한 기능을 테스트하는 것은 기능의 중요한 단위이기 때문에 적절합니다. 그것들이 공공 기능과 다른 모듈에 있다면, 우리는 그것들을 테스트했을 것입니다. 그렇다면 아직 다른 파일로 추출되지 않았을 때 테스트하지 않는 이유는 무엇입니까?