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)
但这是不可能的。
这可以在流畅的断言中完成吗?
我有一个类似的场景,我有一个项目列表(具有属性的对象),我想检查该列表是否包含我正在测试的本地项目。
我找到了这个问题的解决方案:FluentAssertions, 确保 IEnumerable 仅包含单个元素
我通过编写以下语句简化了我的解决方案:
FooList.Should().Contain(fooItem, x => true)
Run Code Online (Sandbox Code Playgroud)
上述约束规定 FooList 对象应包含 fooItem,这是用 lambda x => true 表示的。
相当简单并且适合我的用例。尝试一下并查看我链接的问题线程可能会有所帮助。
祝你好运。