개인 메소드 정보 를 테스트합니까? 에 대한 토론을 찾았습니다 .
일부 클래스에서는 보호 된 메소드를 갖고 싶지만 테스트하도록 결정했습니다. 이러한 방법 중 일부는 정적이고 짧습니다. 대부분의 공개 메소드는이 메소드를 사용하므로 나중에 테스트를 안전하게 제거 할 수 있습니다. 그러나 TDD 접근 방식으로 시작하고 디버깅을 피하기 위해 실제로 테스트하고 싶습니다.
나는 다음을 생각했다.
- 답변에 조언 된 방법 객체 는 이것에 대해 과도한 것으로 보입니다.
- 공개 방법으로 시작하고 더 높은 수준의 테스트로 코드 적용 범위를 지정하면 보호를 설정하고 테스트를 제거하십시오.
- 보호 가능한 메소드를 공개하는 테스트 가능한 인터페이스로 클래스 상속
가장 좋은 방법은 무엇입니까? 다른 것이 있습니까?
JUnit은 자동으로 보호 된 메소드를 공개로 변경하는 것으로 보이지만 자세히 살펴 보지는 않았습니다. PHP는 리플렉션을 통해 이것을 허용하지 않습니다 .