【发布时间】:2016-10-19 10:32:09
【问题描述】:
我正在尝试使用 FluentAssertions 来组合集合和对象图比较断言。
我有以下课程。
public class Contract
{
public Guid Id { get; set; }
public string Name { get; set; }
}
在集合中返回,就像这样。
ICollection<Contract> contracts = factory.BuildContracts();
然后我想确保该集合仅包含特定的 Contract 对象。
contracts.Should().Contain(new Contract() { Id = id1, Name = "A" });
这不起作用,我相信因为Contain 使用的是object.Equals 而不是对象图比较(由ShouldBeEquivalentTo 提供)。
我还需要断言该集合不包含特定对象,即
contracts.Should().NotContain(new Contract() { Id = id2, Name = "B" });
有效地给定一个包含未知数量项目的集合,我想确保;它包含许多特定项目,并且它不包含许多特定项目。
这可以使用 FluentAssertions 提供的函数来实现吗?
附带说明,出于此处讨论的原因,我不想覆盖object.Equals。 Should I be using IEquatable to ease testing of factories?
【问题讨论】:
标签: c# unit-testing fluent-assertions