AutoFixture Likeness - сравнивать только совпадающие свойства

Я хочу иметь возможность сравнивать два следующих объекта на сходство с помощью AutoFixture.SemanticComparison:

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 , Я должен исправить свои модульные тесты (или, по крайней мере, помощники модульных тестов).

Есть ли способ сказать «Я хочу сравнить на сходство только подмножество, которое существует в обоих объектах»?

7
задан Grzesiek Galezowski 18 February 2012 в 12:29
поделиться