FluentAssertions:检查列表包含对象,不包括属性

Dar*_*all 3 .net fluent-assertions

我有几个实现 IEvent 的事件类。为了检查实际事件与我使用的预期事件

actualEvent.ShouldBeEquivalentTo(expectedEvent,opt => opt.RespectingRuntimeTypes()
                                                         .Excluding(e => e.DateCreated));
Run Code Online (Sandbox Code Playgroud)

这些事件有一个 DateCreated 属性,我忽略该属性,因为实际事件和预期事件是在不同时间创建的。

如何检查预期事件在实际事件列表中是否至少存在一次?

我想做以下事情;

actualEvents.Should().Contain(expectedEvent,opt => opt.RespectingRuntimeTypes()
                                                      .Excluding(e => e.DateCreated));
Run Code Online (Sandbox Code Playgroud)

但这是不可能的。

这可以在流畅的断言中完成吗?

Tah*_*lid 5

我有一个类似的场景,我有一个项目列表(具有属性的对象),我想检查该列表是否包含我正在测试的本地项目。

我找到了这个问题的解决方案:FluentAssertions, 确保 IEnumerable 仅包含单个元素

我通过编写以下语句简化了我的解决方案:

FooList.Should().Contain(fooItem, x => true)
Run Code Online (Sandbox Code Playgroud)

上述约束规定 FooList 对象应包含 fooItem,这是用 lambda x => true 表示的。

相当简单并且适合我的用例。尝试一下并查看我链接的问题线程可能会有所帮助。

祝你好运。