Ist es besser, Funktionen hinzuzufügen, die den internen Zustand eines Objekts für Unit-Tests zurückgeben, anstatt die Testklasse zu einem Freund zu machen? - vor allem, wenn es für die Funktionen keine Verwendung gibt, außer für den Fall von Unit-Tests.
Würden abgeleitete Klassen nicht als Kunden/Nutzer der Klasse betrachtet werden, genauso wie Kunden/Nutzer der öffentlichen Schnittstelle? Wenn die einzige abgeleitete Klasse nicht der Unit-Testing-Stub ist, haben Sie dasselbe Problem, als wenn Sie die Accessoren öffentlich gemacht hätten - Autoren von abgeleiteten Klassen können nicht erkennen, welche geschützten Funktionen aufgerufen werden dürfen und welche nur zu Testzwecken verwendet werden sollten. Wenn Sie die testbezogenen Funktionen ändern, können Sie abgeleitete Klassen zerstören, die nicht wussten, dass sie einen Accessor nicht verwenden dürfen.
0 Stimmen
Mögliches Duplikat von Wie teste ich eine Klasse, die private Methoden, Felder oder innere Klassen hat?