2017-03-01 233 views
1

我使用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" }); 
} 
+0

你不能这样做,今天,但在技术上它不应该是复杂的,使之成为可能。大部分内部组件已经足够组合。 –

回答

0

没有优雅的方式,但你可以使用断言:

[Test] 
public void ShouldContainStudent() 
{ 
    new[] { new Student { Name = "George" }, new Student { Name = "Anna" } } 
     .Should().Contain(s => s.Name == "Anna"); 
} 
相关问题