2017-03-01 7 views
1

私はフルエンスアサーションを使用しており、ディープオブジェクトグラフの比較を使用してコレクションにオブジェクトが含まれているかどうかをテストします。私はすべての平等メンバーを実装したくありません。しかし、私はコレクション内のいくつかのオブジェクトの等価封じ込めのテストを行う方法を見つけることができません。たとえば、このテストは失敗し、私はそれが渡したい:流暢なアサーション:コレクションにオブジェクトが含まれているかどうかを確認します。

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"); 
} 
関連する問題