| 

.NET C# Java Javascript Exception

3
Hallo zusammen,
ich möchte in einem Unit Test ein double Array überprüfen was ich von einer Funktion zurück bekomme. Für einen einzelnen double - Wert habe ich bei Assert.AreEqual() die Möglichkeit gefunden, noch ein Delta anzugeben um "Rundungsfehler" zu ignorieren. Für ein Array finde ich aber keine passende Überladung?!

Dann bleibt mir nur eine Schleife um die Werte einzeln zu testen? Oder habe ich was übersehen?

Danke,
Mike
News:
10.10.2011
Xantiva 2,3k 2 9
1 Antwort
1
AreEqual für ein double[] testet nicht Wertgleichheit der Elemente der Arrays, sondern Referenzgleichheit der Arrays. Insofern kommst Du um eine Schleife sowieso nicht herum - oder um die Suche nach einer Bibliothek / Testframework, das dieses Szenario unterstützt. Ich meine mich dunkel zu erinnern, dass es in NUnit spezielle Asserts für Collections/Listen/Arrays gibt, bin mir aber nicht sicher.
10.10.2011
Matthias Hlawatsch 13,2k 4 9
Hallo Matthias, Du hast Recht mit der Referenzgleichheit. Ich hatte voher noch mit:

CollectionAssert.AreEqual(expected, actual);

geprüft. Das prüft nur Wertgleichheit, aber leider eben ohne eine Delta Option.
Xantiva 10.10.2011
Hab grad auch mal bei NUnit nachgeschaut. CollectionAssert.AreEqual() hat eine Überladung, bei der Du einen Comparer angeben kannst. Mit einer kleinen Lambda-Funktion kannst Du dort den vergleich mit delta nachbilden.
Matthias Hlawatsch 10.10.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH