Ich versuche, 2 Objekte mit Microsoft.TestApi zu vergleichen. Das Problem ist, dass es Unterschiede zwischen Enum-Werten nicht aufnimmt.Microsoft.TestApi Object Comparison erkennt keine Enum-Unterschiede
Im folgenden Beispiel würde ich erwarten, dass der Test bestanden wird, da die Enum-Werte unterschiedlich sind, der TestApi-Vergleich gibt jedoch keine Fehlpaarungen zurück.
Wie kann ich Enum-Wert-Unterschiede erkennen?
-Code
public class ObjectComparer
{
public bool AreDifferent(Holiday h1, Holiday h2)
{
var comparer = new ObjectGraphComparer();
var factory = new PublicPropertyObjectGraphFactory();
var sourceGraph = factory.CreateObjectGraph(h1);
var targetGraph = factory.CreateObjectGraph(h2);
IEnumerable<ObjectComparisonMismatch> result;
comparer.Compare(sourceGraph, targetGraph, out result);
return result.Any();
}
}
public class Holiday
{
public Day Day { get; set; }
}
public enum Day
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday
}
-Test
[TestMethod]
public void ShouldDetectDifferentEnumValues()
{
var h1 = new Holiday {Day = Day.Monday};
var h2 = new Holiday {Day = Day.Tuesday};
var comparer = new ObjectComparer();
var result = comparer.AreDifferent(h1, h2);
Assert.IsTrue(result);
}
Haben Sie den Quellcode von 'Microsoft.TestApi' geprüft' zu sehen, ob 'ObjectGraphComparer.compare() bei Aufzählungstypen aussieht? – Brad