я хочу, чтобы иметь возможность сравнить два следующие объекты для сходства с помощью AutoFixture.SemanticComparison:AutoFixture Подобия - сравнить соответствие только свойствам
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, я должен исправьте мои модульные тесты (или, по крайней мере, единичные тестовые помощники).
Есть ли способ сказать: «Я хочу сравнить для подобия только для подмножества, которое существует в обоих объектах»?
Аргумент, который вы описали, довольно силен. Это заставило меня задуматься о том, что является более громоздким - добавление новых свойств в No() или отслеживание двух объектов для изменений имен свойств, чтобы избежать ложных срабатываний. Спасибо, что обратил мое внимание на это! –