Ich arbeite daran, so viel Logik wie möglich aus einem benutzerdefinierten Steuerelement zu verschieben, so dass es Einheit getestet werden kann, um den manuellen Testaufwand zu reduzieren. Ich habe Probleme mit Situationen, in denen eine zu testende Methode ein komplexes Ergebnis liefert. Das Schreiben eines Testfalls, der das Ergebnis berechnet, würde beinhalten, was im Wesentlichen der getestete Code ist, in den Test selbst zu schreiben.Wie schreiben Sie Tests für Code, der den zu testenden Code dupliziert?
Zum Beispiel habe ich eine GeometryGenerator
Klasse, die eine WPF-Geometrie basierend auf den Eigenschaften der Klasse erstellt. In einer Konfiguration wird ein PathGeometry
generiert, der aus einem ArcSegment
besteht. Ich kann berechnen, wie die Eigenschaften des Bogens auf den Testparametern basieren sollten, aber diese Berechnung ist identisch mit dem Code, den ich versuche zu testen. Dies scheint den Test unwirksam zu machen; Wenn es einen Fehler in der Berechnung gibt, liegt ein Fehler im Test vor, und wenn sich die Berechnung in der Methode ändert, muss sie möglicherweise im Test geändert werden.
Was mache ich in dieser Situation? Der einzige Ansatz, den ich mir vorgenommen habe, ist, die Ergebnisse meiner Testfälle manuell zu berechnen und diese Werte fest in die Tests zu codieren. Ist das ein akzeptabler Ansatz (es scheint so, als hätte ich die Tests vor der Implementierung geschrieben)?