Ich mag eine Liste von Objekten vergleichen, um die Reihenfolge der Objekte in der Liste zu ignorieren und nur einige der Eigenschaften in den Objekten zu vergleichen, die derzeit diesen Vergleich auszuführen ich mit dem folgenden Code:Wie vergleicht man Listen mit fließenden Behauptungen?
actual.Should().NotBeNull();
actual.Count.Should().Be(expected.Count);
//compare ignoring order
foreach (var exp in expected)
actual.Should().Contain(act =>
act.IndividualId.Equals(exp.IndividualId)
&& act.Email.Equals(exp.Email)
&& act.FirstName.Equals(exp.FirstName)
&& act.LastName.Equals(exp.LastName)
);
Dies scheint jedoch weniger als ideal zu sein, da bei einem Fehler die erwarteten Werte nicht gedruckt werden. Gibt es einen eingebauten Mechanismus, um diesen Vergleich mit fließenden Aussagen durchzuführen?
Ist es möglich sagen zwei Listen Typen mit tatsächlichen.Should() vergleichen enthalten (erwartet)? –
BraveNewMath
Ja, Sie können tatsächlich tun. Sollen(). BeEquivalentTo (erwartet); –
für die Flexibilität wir Serialisierung jedes Objekt in der Regel json dann verwenden String Vergleich, die Fehler Ausgabe sieht gut aus und Sie müssen nie aktualisieren Sie Ihre Unit-Test, wenn jemand eine neue Eigenschaft fügt –