Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Die Kommunikation zwischen Client und Server wie auch die interne Kommunikation erfolgt ereignisgetrieben. Dabei handelt es sich um eine Umsetzung des Observerpatterns. Verschiedene Bestandteile, die miteinander kommunizieren, enthalten einen Eventbus von Google Guava (https://github.com/google/guava/wiki/EventBusExplained), über den die Kommunikation läuft. Dabei muss es sich in allen Bestandteilen, die miteinander kommunizieren sollen, um das gleiche Eventbus-Objekt handeln. Bestandteile, die das Eventbus-Objekt enthalten, können mit der Methode eventBus.post(Object msg) eine Nachrichten-Objekt msg auf den Eventbus legen. Damit andere Bestandteile auf diese Nachricht reagieren können, müssen sie bei dem Eventbus als Listener registriert sein.
Dies geschieht mit der Methode eventBus.register(Object listener). Die Reaktion auf eine Nachricht msg der Klasse Type erfolgt mit einer Methode mit einem Parameter der Klasse Type oder einer Oberklasse davon. Der Name so einer Methode ist in der Regel onType(Type msg) - also on + Klassenname. Diese Methode muss mit der Annotation @Subscribe versehen sein.

...

Im Basisprojekt wurde der geschriebene Code mithilfe von automatisierten Unittests getestet. In diesem Kapitel wird das Vorgehen bei den Tests, welche Tests es gibt und was sie abdecken, beschrieben.

Vorgehen

Zum Testen wurde das Framework "JUnit" genutzt.  Dabei orientieren sich die Tests in der Regel am Konzept "Arrange, Act, Assert". Hierbei werden zunächst alle benötigten Objekte initialisiert und in den richtigen Zustand gebracht. Dazu kann es Hilfsmethoden geben, insbesondere wenn dieselbe Konfiguration öfter benötigt wird. Nach dem "Arrange"-Schritt wird die zu testende Aktion ausgeführt. Mittels Asserts wird daraufhin überprüft, ob die getestete Aktion tatsächlich die erwarteten Auswirkungen hatte.

...