2015-10-28 177 views
0

我有一个非常简单的方法,它查询数据库并返回一个值。代码如下:单元测试不能正常工作

public List<int?> TravelTime() 
{ 
    List<int?> items = new List<int?>(); 
    Induction induction = new Induction(); 
    using (var dbContext = new MyEntites()) 
    { 
    var query = dbContext.MyTable.Select(a => a.Travel_Time).Take(1); 

     foreach (var item in query) 
     { 
     induction.TravelTime = item; 
     items.Add(induction.TravelTime); 
     } 
    } 
    return items;// Value here is 8 
} 

我试图单元测试这种方法用下面的代码:

[TestMethod] 
public void Check_Travel_Time_Test() 
{ 
    //Arrange 
    InductionView vModel = new InductionView(); 
    Induction induction = new Induction(); 
    List<int?> actual = new List<int?>(); 
    induction.TravelTime = 8; 
    actual.Add(induction.TravelTime); 

    //Act 
    var expected = vModel.TravelTime(); 

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

我不知道为什么它不及格。我得到的例外是。

预计:<System.Collections.Generic.List'1[System.Nullable'1[System.Int32]]>.

实际:<System.Collections.Generic.List'1[System.Nullable'1[System.Int32]]>

如果我调试我有我的TravelMethod和测试方法正确的值和计数是1。有人能告诉我我要去哪里吗?在此先感谢您的帮助。

+3

AreEqual比较引用而不是内容 – nabulke

回答

5

Assert.AreEqual比较引用,而不是内容。您需要使用CollectionAssert类及其方法,如CollectionAssert.AreEquivalent

+0

对,我给你..感谢。我会尽快接受它的时间限制 – Code