비공개 C# 단위 테스트 방법: 과제 및 솔루션
C#에서 비공개 메서드를 직접 단위 테스트하는 것은 캡슐화로 인해 문제가 있습니다. Visual Studio가 이를 지원하기 위해 접근자 클래스를 생성하는 동안 개인 목록과 상호 작용할 때 개체 변환 실패와 같은 런타임 오류가 발생할 수 있습니다. 이는 접근자 클래스와 대상 클래스 간의 유형 불일치로 인해 발생하는 경우가 많습니다.
문제:
일반적인 시나리오는 개인 목록에 항목을 추가하려고 할 때 개체 변환 오류로 인해 실행 중에 단위 테스트가 실패하는 것입니다. 접근자 클래스의 목록 유형이 원래 클래스의 목록 유형과 다릅니다.
문제 해결:
더 이상 사용되지 않는 접근 방식: PrivateObject
클래스:
.NET Core 2.0 이전의 .NET 버전에서 PrivateObject
클래스는 개인 메서드를 호출하는 방법을 제공했습니다.
Class target = new Class(); PrivateObject obj = new PrivateObject(target); var retVal = obj.Invoke("PrivateMethod"); Assert.AreEqual(expectedVal, retVal);
중요: PrivateObject
및 PrivateType
는 .NET Core 2.0 이상에서 더 이상 지원되지 않습니다.
더 나은 대안:
일반적으로 모범 사례에서는 비공개 메서드를 직접 테스트하는 것을 권장하지 않습니다. 그 이유와 대신 수행할 작업은 다음과 같습니다.
위 내용은 C#에서 개인 메서드를 효과적으로 단위 테스트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!