我正在处理许多项目,每个项目都包含一个 DateProcessed 属性(一个可为空的 DateTime),并希望断言该属性设置为当前日期。当它通过处理程序时,日期都略有不同。
我想测试所有 DateProcessed 属性是否具有相对性(100 毫秒)最近的 DateTime。
Fluent Assertions 具有 .BeCloseTo 方法,该方法非常适用于单个项目。但我想将它用于整个系列。但是在查看集合时,它不能通过 Contains() 获得。
一个简化的例子...
[TestFixture]
public class when_I_process_the_items
{
[SetUp]
public void context()
{
items = new List<DateTime?>(new [] { (DateTime?)DateTime.Now, DateTime.Now, DateTime.Now } );
}
public List<DateTime?> items;
[Test]
public void then_first_item_must_be_set_to_the_current_time()
{
items.First().Should().BeCloseTo(DateTime.Now, precision: 100);
}
[Test]
public void then_all_items_must_be_set_to_the_current_time()
{
items.Should().Contain .... //Not sure? :(
}
}