테스트하려는 클래스에 문제가 있습니다. 개인 열거 형을 선언했으며 코드의 일반 사전에이 열거 형을 사용하고 있습니다. 이 열거 형은이 클래스 외부에서는 의미가 없지만 개인 메서드에서 사용됩니다. 코드를 생성 할 때 접근자는 generic 사전 형식으로 작성되지만 테스트를 사용하려고하면 잘못된 캐스트 예외가 발생합니다.Visual Studio에서 개인 형식을 포함하는 제네릭을 사용하는 방법 단위 테스트
MyClass_Accessor target = new MyClass_Accessor();
Dictionary<MyClass_Accessor.MyEnum, long> dictionary = new Dictionary<MyClass_Accessor.MyEnum, long>();
dictionary.Add(MyClass_Accessor.Myenum.EnumValue, 1);
target.Method(dictionary); //Throws invalid cast exception here.
예외 접근 => 열거의 일반적인 사전 긴 길이 MyClass에 => ENUM으로 변환 할 수 없다는 것이다.
내 작업 클래스을 변경하는 것 외에는이 방법을 테스트 할 수있는 방법이 있습니까?
사전 형식이 지정되지 않고 실제 형식 인 것이기 때문에이 방법이 효과가 있다고 가정합니다. 이 일을 0 일로하겠습니다.하지만이 방법은 클래스의 목적을 변경하지 않고도 작동 할 수 있지만, 지원되는 방법을 찾으면 좋을 것입니다. – Spence
Microsoft는 단위 테스트를 지원하기 위해 InternalsVisibleTo 특성을 추가했습니다. 주요 목표 중 하나 였고 Microsoft의 자체 라이브러리에서 그 목적을 위해 사용되었습니다 (예를 들어, Enterprise Library 3.0 및 4.0, 예를 들어 사용 방법에 대한 예제가 필요한 경우). – jrista