【发布时间】:2012-02-23 05:25:44
【问题描述】:
比较两个对象的所有属性的最佳方法是什么,其中一些对象具有不同的格式(例如,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();
【问题讨论】:
标签: c# tdd fluent-assertions