2014-03-13 3 views
0

EF 6 및 MVC 5를 사용하고 있습니다. 아래의 MaxScore라는 메서드가 있습니다. 나는 그것을 테스트했고 내 프로젝트 내에서 작동합니다. 나는 단위 테스트에 익숙하지 않기 때문에이 방법에 대해 시험하기로 결정했다. 테스트를 디버깅 할 때 "객체 참조가 객체의 인스턴스로 설정되지 않았습니다."라는 오류가 발생합니다. 오류는 아래 방법에서 줄 6을 가리 킵니다. 어떤 아이디어?Linq EF 6을 사용하는 단위 테스트 방법

[TestMethod] 
public void TestMaxScore() 
{ 
    int _maxScore = 0; 
    Calculation hc = new Calculation(); 
    _maxScore = hc.MaxScore(10); 
    Assert.AreEqual(_maxScore, 7); 
} 
+0

Google은 친구입니다. 예를 들어보십시오 : http://msdn.microsoft.com/en-us/data/dn314429.aspx – Marthijn

답변

0

내가 테스트 프로젝트에 (NuGet을 사용하여) 엔티티 Framewwork를 추가했다, 문제를 해결하려면 다음

private HandicapSystemContext db = new HandicapSystemContext(); 

public int MaxScore(double handicap) 
    { 
     int _maxScore = 0; 
     _maxScore = db.AdjustedGrossScores.FirstOrDefault(x => x.MinimiumHandicap <= handicap && x.MaximumHandicap >= handicap).Score; 
     return _maxScore; 
    } 

가 여기 내 단위 테스트 방법 :

여기 내 방법입니다. app.config 파일에 connectionstring을 추가했습니다. Code First를 사용하고 모델 변경시 데이터베이스를 삭제하고 다시 생성하기 때문에 localDB 파일을/bin/Debug/폴더에 복사해야했습니다. 솔리드 스테이트에 도달 할 때까지 데이터베이스가 바뀔 때마다 데이터베이스를 다시 복사해야하며 SQL Server 데이터베이스로 전환해야합니다.