AutoFixture.SemanticComparisonを使用して、次の2つのオブジェクトの類似性を比較できるようにしたいと思います。
public class Object1
{
public int a;
}
public class Object2
{
public int a;
public int b;
}
さて、私がこのようにそれをするとき:
var o1 = new Object1 { a = 1 };
var o2 = new Object2 { a = 1, b = 2};
o1.AsSource().OfLikeness<Object2>().ShouldEqual(o2);
次の例外が発生します:「次のメンバーが一致しませんでした:-b。」
次のように「b」メンバーを省略できることがわかりました。
var o1 = new Object1 { a = 1 };
var o2 = new Object2 { a = 1, b = 2};
o1.AsSource().OfLikeness<Object2>().Without(object2 => object2.b).ShouldEqual(o2);
ただし、これは非常に面倒です。クラスObject2に新しいメンバーを追加するたびに、単体テスト(または少なくとも単体テストヘルパー)を修正する必要があるためです。
「両方のオブジェクトに存在するサブセットについてのみ類似性を比較したい」と言う方法はありますか?