2015-10-28 172 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