2013-05-06 2 views
1

단위 테스트를 수행하고 연결 문자열을 테스트하고 있습니까? 나는이 오류 System.NullReferenceException: Object reference not set to an instance of an object를 얻을 수단위 테스트 프로젝트에서 구성 파일을 읽으려고 할 때 System.NullReferenceException

[TestMethod()] 
    public void connectionStringTest() 
    { 
     //string expected = null; // TODO: Initialize to an appropriate value 
     string actual; 

     string expected = " User Id=ownitsbio;Password=ownitsbio;Data Source=preprod"; 
     actual = ConfigurationManager.ConnectionStrings["ownitsbio"].ConnectionString; 

     Assert.AreEqual(expected, actual); 
     //Assert.Inconclusive(expected); 

    } 

: 이것은 내 시험 방법에있는 코드입니다. 무슨 문제가 될 수 있을까 ?? 도와주세요!

+6

아마도 디버깅 할 때 가장 기본적인 문제 일 것입니다. 디버거를 사용하여'X.Y.Z' 라인의 어떤 부분이'null'으로 평가되는지 정확히 검사 할 수 있습니다. – Jon

+0

@jon 나는 동의한다. 그러나 그의 주장에 대해, 초보자 테스터는 읽혀질 설정 파일이 테스트중인 시스템의 파일이 아니라 테스트 프로젝트의 파일이라는 것을 항상 분명히 알지 못한다. ;) (Side-note; 이것은 하나의 단위 코드의 순수한 로직 외부에 의존하기 때문에 "단위 테스트"가 아니라 통합 테스트입니다.) 두 가지 유형의 테스트를 유지하도록주의하십시오 별도로, 이상적으로 두 개의 개별 프로젝트에서 분리). – Kjartan

답변

3

테스트 프로젝트에 App.config를 추가하고 거기에 연결 문자열을 추가하십시오.

4

테스트 구성 파일에 연결 문자열 ownitsbio이없는 것 같습니다.

아무 것도없는 경우이 연결 문자열을 추가하십시오.

1

테스트 프레임 워크는 구성 파일 (web.config 또는 app.config)의 설정이 필요합니다. 테스트 프레임 워크는 일반적으로 프로그램에 포함 된 구성 파일을 사용하지 않습니다. 따라서 ownitsbio 연결 문자열이 존재하지 않고 ConnectionString 속성을 읽으려고하면 null 참조 예외가 발생합니다.

관련 문제