vergleichen Wenn ich ein Objekt Graph erwartet, die eine Liste enthält, etwa so:Wie verschachtelte Listen in Objektgraphen mit fließend Behauptungen
var expectedExperiment = new Experiment
{
Number= "12345",
AllocatedInstrument = "Instrument 1",
Experimenters = new List<Experimenter>
{
new Experimenter
{
Name = "Sue"
Role = "Scientist",
Id = 1,
Initials = "S"
},
new Experimenter()
{
Name = "Mark",
Role = "Technician",
Id = 2,
Initials = "M"
},
}
};
Wie kann ich es zu meinem eigentlichen Objekt vergleichen, wenn ich will nur Fügen Sie bestimmte Eigenschaften in die Liste der untergeordneten Objekte ein.
Zum Beispiel würde Ich mag so etwas schreiben alle Objektmutter Eigenschaften zu vergleichen und einige der Kind-Objekteigenschaften:
actualExperiment.ShouldBeEquivalentTo(expectedExperiment, options => options
.Including(o => o.Number)
.Including(o => o.AllocatedInstrument)
.Including(o => o.Experimenters.Select(e => e.Role))
.Including(o => o.Experimenters.Select(e => e.Name)));
Aber ich erhalte eine Ausnahme:
System.ArgumentException : Expression <o.Experimenters.Select(e => e.Role)> cannot be used to select a member.
Es macht mir nichts aus, in welcher Reihenfolge sich die Child-Elemente befinden, aber ich möchte behaupten, dass Eigenschaften, die mir wichtig sind, die Erwartungswerte erfüllen.