2011-01-05 50 views
0

我有一類結構類似這樣的MbUnit的Assert.AreEqual DateTime和小數不等於

public class Entity 
{ 
    public int Id { get; set; } 
    public string Label { get; set; } 
    public string Description { get; set; } 
    public DateTime CreatedAt { get; set; } 
    public DateTime ModifiedAt { get; set; } 
    public DateTime? DeletedAt { get; set; 
} 

我填寫的所有屬性,並將其保存到數據庫,在這之後我從DB

得到這個對象
var entity = CreateEntity() 
SaveToDB(entity); 
var entityFromDb = GetFromDB(); 

,並嘗試值以這種方式

Assert.AreEqual(entity, entityFromDb); 

和比較比較的zhcon失敗的日期時間一nd十進制值

預期值相等。

預期值: ID = 28, CreatedAt = 2011-01-05T14:06:32。 6874218Z, DeletedAt = NULL, 描述= 「描述」, 持續時間= 2000米, 標籤= 「測試實體」, ModifiedAt = 2011-01-05T14:06:32。 6874218Z

實際值: 編號= 28, CreatedAt = 2011-01-05T14:06:32。 , DeletedAt = NULL, 描述= 「描述」, 持續時間= 2000.00000米, 標籤= 「測試實體」, ModifiedAt = 2011-01-05T14:06:32。

我可以以某種方式比較這價值,但沒有使每個領域

回答

3

一個辦法是改變你的setter方法DateTime是否讓他們在這一點上進行截斷的比較 - 基本問題在於你的數據庫沒有存儲亞秒級的精度,所以在實體中也沒有它。

我希望小數值已被比較,即使他們有不同的存儲精度。 (1.000米和1.0米有不同的表示,但被認爲是相等的。)