2014-03-13 44 views
0

我使用EF 6和MVC 5.我有一個方法調用MaxScore,見下文。我已經測試過它,它可以在我的項目中使用。我是單元測試的新手,所以我決定嘗試使用這種方法。當我調試測試時,我得到一個錯誤,「對象引用未設置爲對象的實例」。錯誤指向下面的方法中的第6行。有任何想法嗎?使用Linq EF的單元測試方法6

這裏是我的方法:

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; 
    } 

這裏是我的單元測試方法:

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

谷歌是你的朋友..看看例如:http://msdn.microsoft.com/en-us/data/dn314429.aspx – Marthijn

回答

0

要解決這個問題,我不得不實體Framewwork(使用的NuGet)添加到測試項目。我添加了一個連接字符串到app.config文件。由於我使用Code First並在模型更改上刪除和重新生成數據庫,因此我必須將localDB文件複製到/ bin/Debug /文件夾。每次數據庫更改時,我都必須重新複製數據庫,直到達到固態並切換到Sql Server數據庫。