Tests - thm-mni-ii/SWT-P_SS20_Dixit GitHub Wiki

Zum Testen haben wir uns für den Unity Test Runner entschieden.

Test Runner vs Mirror

Unser Spiel und auch fast alle Methoden basieren auf dem Mirror Network. Das hat das Testen für uns sehr komplex gemacht, da die Commands und Rpc-Calls nur innerhalb einer Mirror Server Struktur ausgeführt werden können.

Um nun auch diese Testen zu können mussten wir daher einen Mirror Server in den Tests emulieren.

Wenn der Mirror Server läuft, können Rpc-Calls einfach in den Tests ausgeführt werden weil der TestRunner quasi im Server läuft. Der Client existiert nur theoretisch als ConnectionToClient. Jedoch gibt es keine echte laufende Unity-Instanz als Client.

Die Tests

Screenshots des Test Runners

Wir haben unsere Test entsprechend unseren Klassen angepasst, wobei wir einige Klassen in Tests zusammengefasst haben

  • Notifications: Notification, NotificationSystem, NotivicationCanvas
  • Database: DatabaseSetup, Question, QuestionSet
  • Player, PlayerInput innerhalb des Game Tests

Ausführung

Wenn die Tests gleichzeitig gestartet werden, beeinflussen sie sich gegenseitig, da alle auf die selbe Szene zugreifen. Deshalb gehen einige Tests schief, wenn man über "Run All" alle Tests startet. Durch eine separate Ausführung können die Tests erfolgreich ausgeführt werden.