Hallo,
hab folgendes Szenario:
Eine Klasse bietet mehrere Methoden, eine davon ist public static und ruft zufälligerweise eine von n protected static Methoden auf.
Ich befinde mich im Test-based Development, das heißt ich validiere meine Arbeit ständig durch Unit und Funktionstests.
Eine derartige Klasse muss als unit getestet werden, das von mir genutzt Framework bietet Test Werkzeuge dafür an. Das Problem, wegen der OOP Kapselung kommen diese Werkzeuge natürlich nicht an die protected Methoden ran.
Meine Frage ist, wie kann ich Zugriff auf die protected Methode am einfachsten realisieren?
Ein Weg wäre eine Wrapperklasse, die den Zugriff public macht, der Nachteil, ich muss eine Menge Methoden Signaturen nochmal schreiben, was ich unheimlich ungerne mache.
Ich kann auch nicht zeitweise mal protected in public ändern, weil die Tests automatisiert ablaufen, sprich dieser Test würde sehr oft automatisiert ausgeführt werden, da kann ich nicht jedes mal die Kapselung aufbrechen.
Gibt es so etwas wie ne Reflection und Introspection Kapazität, damit ich das generisch machen kann?
hab folgendes Szenario:
Eine Klasse bietet mehrere Methoden, eine davon ist public static und ruft zufälligerweise eine von n protected static Methoden auf.
Ich befinde mich im Test-based Development, das heißt ich validiere meine Arbeit ständig durch Unit und Funktionstests.
Eine derartige Klasse muss als unit getestet werden, das von mir genutzt Framework bietet Test Werkzeuge dafür an. Das Problem, wegen der OOP Kapselung kommen diese Werkzeuge natürlich nicht an die protected Methoden ran.
Meine Frage ist, wie kann ich Zugriff auf die protected Methode am einfachsten realisieren?
Ein Weg wäre eine Wrapperklasse, die den Zugriff public macht, der Nachteil, ich muss eine Menge Methoden Signaturen nochmal schreiben, was ich unheimlich ungerne mache.
Ich kann auch nicht zeitweise mal protected in public ändern, weil die Tests automatisiert ablaufen, sprich dieser Test würde sehr oft automatisiert ausgeführt werden, da kann ich nicht jedes mal die Kapselung aufbrechen.
Gibt es so etwas wie ne Reflection und Introspection Kapazität, damit ich das generisch machen kann?
Kommentar