Pro / Contra: Unit Test von privaten Methoden.
Was meint Ihr? Sinnvoll oder nicht? Soll man oder nicht?
Was meinst du? Ob man es machen sollte? Ob man es machen kann? Ob es sinnvoll ist?
Erstens kann man prüfen, ob neben "private" vielleicht auch ein "internal" in Frage kommt. Dann kann man mit dem "InternalsVisibleTo"-Attribut arbeiten.
Zweitens muss man fragen: Wenn ich eine private Methode so umfangreich mache, dass sie einen Unit-Test nach sich zieht, hat sie dann nicht eventuell eine eigene Klasse verdient? Diese wäre dann wieder einfacher Testbar.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
TDD: Hilfsklassen auch testen?
und
Private Methoden in NUnit testen
Hilft vielleicht auch.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Grundlegend sollten nur für public Methoden Unit Tests geschrieben werden. Wenn es nötig sein sollte private Methoden zu Testen, sollte man noch mal überdenken, ob dass was man da macht, nicht besser geht. (An dem Punkt geht TDD, davon aus, das wenn es schwer wird (nicht möglich ist) einen Unit Test zu schreiben, wahrscheinlich ein Designen Fehler vorliegt.)
Es gibt aber auch immer mal Fälle, in dehnen es durchaus Sinnvoll, ist für private Methoden einen UnitTest zu schreiben. Auch wenn der Artikel was anderes Schreibt bei Legacy Code, halte ich es durch aus für Sinnvoll erst Tests zu schreiben und dann die Methode zu ändern. Ich ändere dann aber meist die Sichtbarkeit von Private auf Internal.
MFG
Björn
Sollte man mal gelesen haben: