Свободные утверждения: проверить, содержит ли коллекция объект, эквивалентный предоставленному?
Я использую Fluent Assertions и хочу проверить, содержит ли моя коллекция какой-либо объект, используя глубокое сравнение графов объектов. Я не хочу реализовывать все это равенство членов. Тем не менее, я не могу найти способ сделать тест на предмет эквивалентности некоторого объекта в коллекции. Например, этот тест не пройден, и я хочу, чтобы он прошел:
class Student
{
public string Name { get; set; }
}
[Test]
public void ShouldContainStudent()
{
new[] { new Student { Name = "George" }, new Student { Name = "Anna" } }.Should()
.Contain(new Student { Name = "Anna" });
}
Есть ли какой-нибудь элегантный способ сделать это? Что-то вроде этого?
[Test]
public void ShouldContainStudent()
{
new[] { new Student { Name = "George" }, new Student { Name = "Anna" } }.ShouldContainEquivalent(new Student { Name = "Anna" });
}
1 ответ
Решение
Нет элегантного способа, но вы можете использовать предикат:
[Test]
public void ShouldContainStudent()
{
new[] { new Student { Name = "George" }, new Student { Name = "Anna" } }
.Should().Contain(s => s.Name == "Anna");
}