[] 물론, 문제는 특정 "친구"구현에만 국한되지 않고 관련성이있는 경우 구현 세부 사항을 지적 할 수 있습니다.단위 테스트를 위해 "친구"선언 사용하기. 나쁜 생각?
대답없는 질문을 읽고 InternalsVisibleTo
속성을 발견했습니다.
인 현재 어셈블리에서만 일반적으로 볼 수있는 유형이 다른 어셈블리에서 볼 수 있도록 지정합니다.
MSDN의 C# Programming Guide에는 internal
메서드 및 형식을 다른 어셈블리에 사용할 수 있도록 특성을 사용하는 방법을 설명하는 Friend Assemblies 구역이 있습니다.
유닛 테스트 어셈블리에서 사용하기 위해 라이브러리를 계측하기위한 "숨겨진"인터페이스를 만들기 위해이 방법을 사용하는 것이 좋은지 궁금합니다. 그것은 양방향 (생산 어셈블리의 테스트 코드, 테스트 코드의 생산 어셈블리에 대한 친밀한 내부 지식)에서 대규모로 결합을 증가시키는 것으로 보이지만, 반면에 공용 인터페이스를 어지럽히 지 않으면 서 세밀한 테스트를 만드는 데 도움이 될 수 있습니다.
테스트 할 때 친구 선언을 사용한 경험은 무엇입니까? 그것은 당신의 은탄 이었습니까, 아니면 죽음의 행진을 시작 했습니까?
강력한 이름 지정에 대한 힌트를 제공해 주셔서 감사합니다! 나는 (아직) 이것을 인식하지 못했지만, 모든 어셈블리가 공개를 위해 강하게 명명되어야한다고 생각하기 때문에, 나는 이것을 실제 문제로 보지 않는다. –