본문 바로가기

프로그래밍/기타

[프로그래밍] 테스트 코드 작성 시 private 메소드에 대한 고찰

반응형

회사에 다니면서 혹은 사이드 프로젝트를 하면서도 왠만하면 테스트 코드를 작성해 왔었다. 첫 회사를 나오고 나서는 위 주제와 같은 고민을 한 적이 없었지만 앞으로 좀 더 규모가 커지고 복잡한 로직이 들어가는 프로젝트를 진행하게 된다면 위 같은 고민을 할 것 같아 미리 정리해두려고 이 글을 적는다. 잘 지켜질지는 모르겠지만 그래도 최대한 지켜봐야겠다.

 

내린 결론은 private 메소드에 대한 직접적인 테스트 코드를 왠만하면 작성하지 않는 것이다.

- private는 밖으로 노출된 부분이 아니기 때문에 Reflection을 통해서 강제적으로 테스트 코드를 짤 수 있음.(Android에서는 PowerMock에서 제공)

- 테스트 코드는 기존의 객체 혹은 클래스에 전혀 변형을 주지 않고 테스트하는 게 제일 좋은 것 같음.

- 위와 같은 이유로 private 메소드에 대한 테스트 없이도 public, protected 단에서 해당 private 메소드를 테스트하게 만들어야 한다고 생각함. 다만 대상으로 하는 private 메소드가 너무 큰 역할을 담당하고 있다면 해당 메소드에 대한 역할 class로 extract하는 걸 고려해야 함.

 

 

반응형