문제

내부 클래스에 단위 테스트를 작성하는 방법 ???

도움이 되었습니까?

해결책

최상위 클래스의 외부 인터페이스의 동작을 지정하는 테스트를 작성합니다. 해당 클래스가 내부 클래스를 사용하여 해당 동작을 구현하는지 여부는 클래스의 구현 세부 사항이며 테스트는 그것에 대해 아무것도 알 필요가 없습니다.

내부 클래스를 최상위 클래스의 인터페이스를 통해 적절하게 테스트 할 수없는 경우 일반적으로 내부 클래스를 이동하여 새로운 최상위 클래스로 직접 테스트하는 것이 가장 좋습니다. 내부 클래스를 테스트하려는 것은 내부 클래스가 최상위 클래스가되기에 충분히 중요 할 수 있다는 코드 냄새입니다.

다른 팁

내가 추천하지는 않지만 당신은 또한 InternalSvisibleToattribute.

단위 테스트에 MS Visual Studio를 사용할 때는 간단히 개인 액세서. 내부적으로 그것은 내가 생각하는 반사와 함께 작동합니다. 생성 된 코드를 살펴보십시오.

직접 테스트하지 않습니다. 정의 된 클래스를 통해 테스트됩니다.

그리고이 질문 태그가 현재 알 수 있듯이 TDD를 적용하면 내부 클래스를 요구하는 테스트는 무엇입니까? 당신이 일하는 수업에서 개인 소유의 표준 클래스가 될 수 없습니까?

우리는 반사를 사용하여 내부 클래스에서 방법을로드하고 호출하는 도우미 클래스를 사용했습니다. 디버그 기호를 사용하여 컴파일 시간에 접근성을 변경할 수도 있습니다.

#if DEBUG
public
#else
internal
#endif
    class MyInternalClass
{
    ...
}

그러나 Esko Luontola의 답변은 가장 중요한 기능 또는 비즈니스 요구 사항이므로 더 정확합니다. 중요한 위험 영역을 테스트하기보다는 코드 커버리지에 너무 집중할 수 있습니다.

자세한 설명을 참조하십시오 http://msdn.microsoft.com/en-us/library/bb385974.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top