단위 테스트의 경우 개인 메서드를 테스트하지 말아야합니다. 그렇지만 통합 테스트 (MSTest 또는 NUnit 같은 단위 테스트 프레임 워크 사용)에 대해서는 내부 API 호출을 매우 많이 실행하고 싶습니다. 테스트 URL을 사용하여 타사 API 공급 업체가 백엔드를 변경할 때 현재 코드가 작동하는지 확인하십시오.통합 클래스 테스트 개인 클래스 및 메서드
복잡한 시스템 (바보 같은 API에는 수백 개의 매개 변수가 있음)을 감안할 때 API 및 도우미 클래스를 데이터 영역 라이브러리의 내부에 완전히 숨김으로써 API 및 API의 대부분을 숨겼습니다. 저는 공개적으로 사용했기 때문에 이것을 바꾸고 싶지 않습니다. 우리는 이상한 개발자가 프로젝트에 익숙하지 않고 일반적으로 경험이 부족한 개발자가 즉시 웹 사이트 코드에서 직접 api를 호출 할 것이기 때문에 이것을 바꾸고 싶지 않습니다. 클래스를 내부 클래스로 만드는 것은 적어도 추상화 레이어의 시점을 파괴하기 전에 생각해야합니다.
나는 내부 방법을 사용하기 위해 리플렉션 코드를 많이 만들었지 만 너무 잘 작동하지 않고 sphagetti-ish를 얻고 있습니다. 특정 라이브러리에서 메소드를 공개적으로 볼 수있게하는 방법이 있습니까? 테스트 라이브러리가 api를 포함하는 라이브러리의 일부로 취급되도록하는 방법이 있습니까? 이 모범 사례가 있습니까?
사용하는 언어에 따라 라이브러리 클래스의 가시성을 설정하고 라이브러리 클래스의 일부를 파생시킬 수 있습니다. 당신이 보호 된 것을 사용한다고 가정하십시오. –
NUnit과 MSTest에 대한 귀하의 언급에 기반하여, 저는 .NET 기반 언어를 사용하고 있다고 대답했습니다. 틀린 것이 있으면 우리에게 알려주십시오. =) – Rob
.NET C# mix 3.5 (테스트 용)와 2.0 (레이어 코드 용)으로 나뉩니다. 후자의 경우 stage/uat/prod 서버의 업그레이드가 지연되었습니다. – Aquinas