0
C#/VS2008에 콘솔 응용 프로그램을 작성했습니다. 그 안에는 접근성 수정자를 지정하지 않고 선언 된 여러 클래스가 있습니다. Like액세스 할 수없는 오류 : 콘솔 응용 프로그램 NUnit
Namespace MyNamespace
{
Class MyClass
{
..
}
}
이제 테스트 용으로 새 콘솔 응용 프로그램이 추가되었습니다. 나는 NUnit 프레임 워크 DLL에 대한 참조를 추가했다. 그리고 내 주요 프로젝트 DLL에 대한 참조. 그러나 My TestFixture 클래스에 MyClass 객체를 만들려고하면 "MyNamespace.MyClass가 보호 수준으로 인해 액세스 할 수 없습니다."와 같은 오류가 발생합니다.
클래스를 공용으로 만들어야합니까? 그러나 내 프로젝트가 그것을 감당할 수 없다면 어떨까요? 프로젝트가 그것을 감당할 경우
이namespace MyNamespace
{
public class MyClass
{
}
}
당신이 [InternalsVisibleTo]
속성을 살펴 수 있습니다
의미 - 공용으로 변경할 수없는 경우 NUnit을 사용하여 응용 프로그램을 전혀 테스트 할 수 없습니까? –
NUnit뿐만 아니라 모든 테스트 프레임 워크와 함께. 당신은 항상 당신의 단위 테스트에서 반사를 사용할 수 있지만 이것은 다리에서 자신을 쏘는 것과 같습니다. 이것은 물론 당신이 당신의 어플리케이션을 단위 테스트 할 수 없다는 것을 의미하지는 않습니다. 이 클래스가 공개되지 않으면 작성자가 현재 어셈블리 외부에서 액세스 할 수 없으려는 의도가 없음을 의미합니다. 이 클래스에 내부적으로 의존하는 공용 메소드를 항상 테스트 할 수 있으며 암묵적으로 테스트 할 수도 있습니다. –
그러면 기본 프로젝트 자체에 테스트 클래스를 가질 수 있습니까? 그러면 시험을 치르는 것은 연습자가 될까요? –