TDD
29.10.2013, 00:00 Uhr
Objekte auf identischen Inhalt testen
Peter Vogel schreibt Tests auch für Code den er nicht ändern kann/darf. Dabei hatte er ein Problem mit unterschiedlichen Objekten mit identischem Inhalt und stellt seine Lösung vor.
Vergleicht man zwei Objekte mit Assert.AreEqual(objekt1, objekt2), so liefert der Vergleich auch dann false, wenn beide Objekte denselben Inhalt haben. In Peter Vogels Testpraxis taucht dieses Problem immer wieder auf. Er muss regelmäßig unterschiedliche Objekte auf gleichen Inhalt testen. Es gibt mehrere Möglichkeiten das zu tun. Die meisten davon sind aufwändig und fehleranfällig. Vogel hat deshalb eine Erweiterungsmethode geschrieben, welche die Property-Werte eines Objekts in Strings umwandelt und nimmt darüber den Vergleich vor. Auch wenn seine Methode noch nicht perfekt arbeitet (beispielsweise werden Nothing und Null gleichgesetzt, außerdem arbeitet sie nicht mit Collection-Properties), lohnt sich ein Blick auf seine Lösung. [bl]