2014-03-13 102 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数据库。