Java에서 소켓 응용 프로그램을 작성합니다. 서버에서 이벤트 소스의 메시지를 가져 와서 이벤트 유형에 따라 연결된 사용자에게 알림을 보냅니다.JUnit 모범 사례 - 공개 메서드로 결과를 확인할 수없는 테스트 메서드
이제 서버에 대한 JUnit 테스트를 작성하려고합니다 ... JUnit (Eclipse에서 자동으로 제안 됨)은 모든 공용 메소드에 대한 테스트를 구현하기 위해 필자에게 필요성을 알았습니다. 서버 클래스에는 public 메서드 bufferEvent ...가 있지만 이벤트는 개인 메서드에서 처리되며 버퍼링 된 메시지 수를 반환하는 메서드조차 없습니다.
따라서 서버에는 결과를 확인할 수있는 공용 메서드가 없습니다.
나는 문제가 일반화 될 수 있다고 생각 : 이 어떻게 결과가 공개 방법 (NO 게터 등) 난 그냥 테스트를 위해 추가 메소드를 작성하지 않도록 할
확인 할 수없는 공공 방법을 테스트 할 수 있습니다. 이 문제를 해결할 수있는 임시 해결책이나 모범 사례가 있습니까?
미리 감사드립니다.
아마도 반사가 도움이 될 수 있을까요? – Petr
http://stackoverflow.com/questions/10141626/changing-private-methods-to-protected-for-testing – andersoj
코드를 제공 할 수 있습니까? 우리 회사에는 TDD 코치가 있으며 몇 가지 트릭을 설명했지만 소스 코드에 따라 다양합니다. 때로는 메서드 결과를 테스트 할 필요가 없지만 일부 호출이 제대로 수행되었는지 확인해야 할 때도 있습니다. 때로는 설계 결함이 있고 개인적인 방법이 실제로 다른 클래스에 있어야하며 공개되어 테스트 할 수 있어야합니다. – ThanksForAllTheFish