Statische Methoden testen – Es müssen ja nicht Mocks sein!

Statische Methoden testen ist nicht so schwer wie man denkt! Liest man jedoch Artikel oder betrachtet man Videos zu statischen Methoden und JUnit, werden meist Mocking Frameworks als Lösung diskutiert. Beispielsweise wenn die Diskussion bei stackoverflow.com verfolgt.

Dieser Lösungsansatz ist durchaus sinnvoll, um Unit Testing zu ermöglichen, wenn externe Libraries einem einen Strich durch die Rechnung machen. Bei statischen Methoden, die in der eigenen Codebasis liegen, sollte jedoch darüber nachgedacht werden, ob das Klassendesign selbst ungünstig ist und ob die statische Methode eigentlich eine Instanzmethode sein sollte.

Da ich immer wieder sehe, dass lieber kein Unit Tests geschrieben wird als das Design anzufassen, habe ich mich entschlossen, dieses Video zu erstellen. Darin zeige ich Dir wie du in kleinen Schritten das Design so verbessern kannst, dass du

  • ein flexibleres Klassendesign erhältst;
  • deine Unit Tests auch schreiben kannst, obwohl die statische Methode bspw. eine Datenbankverbindung voraussetzt;
  • die Konzepte Inversion of Control & Dependency Injection ganz verwenden kannst

 

Vom Absolvent zum Java Software Craftsman

Du stehst kurz vor dem Abschluss deines Studiums / deiner Ausbildung! Sehr gut! Deine Karriere als handwerklich versierter Softwareentwickler (vgl. Software Craftsmanship) kann nun Fahrt aufnehmen. Doch was zeichnet nun einen professionellen Softwareentwickler aus?

Um ein guter Softwareentwickler zu sein, muss man sich ständig weiterentwickeln. Nicht nur die Technik im Sinne von Betriebssystemen, Browsersoftware und Hardware entwickelt sich ständig weiter, auch Best Practices sind einem ständigen Wandel unterlegen. Um Software effizient zu entwickeln, bedarf es der Kenntnis aller Möglichkeiten innerhalb eines Technologieökosystems. Nur so lassen sich die richtigen Entscheidungen treffen und die besten Ergebnisse erzielen (Quelle: Björn Weinbrenner)

Diese Aussage von Björn Weinbrenner trifft meiner Meinung nach den Nagel auf den Kopf. Du musst Werkzeuge, Methoden und Technologien kennen, um deren Tauglichkeit in der Praxis einschätzen zu können (vgl. Abschnitt „Lese kontinuierlich…„). Für erste möchte ich dir ein paar Tipps mit auf den Weg geben, wie du diesem hohen Anspruch näher kommst.

„Vom Absolvent zum Java Software Craftsman“ weiterlesen