4
什麼是比較兩個對象的所有屬性,其中一些人有不同的格式(例如,在一個DateTime
和DateTime.ToString()
與其他自定義格式)的最佳方式的對象?比較一些地方道具具有不同格式
我能夠通過使用2個斷言來做到這一點:
o1.ShouldHave().AllPropertiesBut(dto1 => dto1.Date).EqualTo(o2);
o1.Date.Should().Be(DateTime.Parse(o2.Date));
我會考慮以下,但是,這並不編譯,因爲EqualTo<T>()
是無效的。
o1.ShouldHave().AllProperties().But(d => d.Date).EqualTo(o2)
.And.Date.Should().Be((DateTime.Parse(o2.Date));
類型有:
public class Dto1
{
public int ID { get { return 1; } }
public DateTime Date { get { return DateTime.Now.Date; } }
}
public class Dto2
{
public int ID { get { return 1; } }
public string Date { get { return DateTime.Now.Date.ToShortDateString(); } }
}
var o1 = new Dto1();
var o2 = new Dto2();
謝謝回答。據我所知,DateTime轉換依賴於文化 - 這僅僅是一個例子。只是想知道爲什麼'EqualTo()'不允許方法鏈接:) 順便說一句流利的插入是真棒 - thx爲您的工作。 –
2012-01-31 21:44:47