Hallo zusammen,
ich praktiziere nun seid einer gewissen Zeit Test-First Entwicklung, und ich denke mittlerweile bin ich einigermaßen geübt. Ich stelle mir nur immerwieder die Frage, was genau die Unit in einem Unit-Test genau sein sollte. Ist dies immer eine durch Mocks und Stubs etc. isolierte Klasse oder ist es etwa eine "Einheit" sehr eng zusammenhängender Klassen oder etwa ein ganzes Modul in dem ich die Abhängigkeiten zu den "Sytemgrenzen" sprich Datenbank, GUI, Dateisystem, etc. abschneide? Ich persönlich habe die Erfahrung gemacht, dass Tests auf kleiner ebene zwar einfach zu schreiben sind, allerdings sehr wenig raum für refactorings lassen (bis auf umbenamsen von Variablen vielleicht). Tests auf sehr hoher Ebene allerdings lassen die Testsuites meist stark wachsen und die Tests werden unübersichtlich. Wo sollte man eurer Meinung nach die Grenze ziehen? Was ist die Unit beim Unit-Testen?
ich praktiziere nun seid einer gewissen Zeit Test-First Entwicklung, und ich denke mittlerweile bin ich einigermaßen geübt. Ich stelle mir nur immerwieder die Frage, was genau die Unit in einem Unit-Test genau sein sollte. Ist dies immer eine durch Mocks und Stubs etc. isolierte Klasse oder ist es etwa eine "Einheit" sehr eng zusammenhängender Klassen oder etwa ein ganzes Modul in dem ich die Abhängigkeiten zu den "Sytemgrenzen" sprich Datenbank, GUI, Dateisystem, etc. abschneide? Ich persönlich habe die Erfahrung gemacht, dass Tests auf kleiner ebene zwar einfach zu schreiben sind, allerdings sehr wenig raum für refactorings lassen (bis auf umbenamsen von Variablen vielleicht). Tests auf sehr hoher Ebene allerdings lassen die Testsuites meist stark wachsen und die Tests werden unübersichtlich. Wo sollte man eurer Meinung nach die Grenze ziehen? Was ist die Unit beim Unit-Testen?