Ответ 1
Я не верю, что есть.
Assert.AreEqual сравнивает нечисловые типы с помощью Equals.
Assert.AreSame проверяет, ссылаются ли они на один и тот же объект
Есть ли встроенное в Nunit утверждение, что все свойства между двумя объектами одинаковы, без необходимости переопределять Equals?
В настоящее время я использую отражение для подтверждения каждого отдельного свойства для пары объектов.
Я не верю, что есть.
Assert.AreEqual сравнивает нечисловые типы с помощью Equals.
Assert.AreSame проверяет, ссылаются ли они на один и тот же объект
Вы можете написать утверждения агностики фреймов, используя библиотеку с именем Should. Он также имеет очень хороший плавный синтаксис, который можно использовать, если вам нравятся плавные интерфейсы. У меня была запись в блоге, связанная с тем же.
http://nileshgule.blogspot.com/2010/11/use-should-assertion-library-to-write.html
Вы можете использовать два объекта и свойства с помощью функции ShouldBeEquivalentTo
dto.ShouldBeEquivalentTo(customer);
https://github.com/kbilsted/StatePrinter было написано специально, чтобы сбрасывать графы объектов в строковое представление с целью написания простых модульных тестов.
Учитывая
class A
{
public DateTime X;
public DateTime Y { get; set; }
public string Name;
}
Вы можете использовать безопасный тип и использовать автоматическое заполнение визуальных студий включите или исключите поля.
var printer = new Stateprinter();
printer.Configuration.Projectionharvester().Exclude<A>(x => x.X, x => x.Y);
var sut = new A { X = DateTime.Now, Name = "Charly" };
var expected = @"new A(){ Name = ""Charly""}";
printer.Assert.PrintIsSame(expected, sut);