Testing - hpi-swa-teaching/SpotifyConnect GitHub Wiki

Wir testen auf unterschiedliche Weisen.

  • Einige Tests setzten ein aktives Spotify Device voraus
  • Es wird eine korrekte clientId und ein clientSecret erwartet

Einfache Tests

  • Package: SpotifyConnect-Tests
  • Hier werden Subclases von TestCase angelegt, um Tests zu schreiben und auszuführen, die
    • Keinen ApiEndpoint testet (auch nicht mit Mock)
    • Keinen Access-Token braucht

ApiEndpoint Mock Data Tests

  • Package: SpotifyConnect-Mock-Tests
  • Hier wird jeder ApiEndpoint mit returnsTestContent: true getestet
  • Dafür wir eine Subclass von TestCase angelegt und SPOCMockTestApi<...> benannt (z.B. SPOCMockTestApiSearch)
  • In dieser Klasse gibt es dann wahrscheinlich eine testMockApi<...>Execute Methode (z.B. testMockApiSearchExecute)

Tests mit einem Authorizer

  • Package: SpotifyConnect-Auth-Tests
  • Hier kann mit einem validen SPOCAuthorizer getestet werden
  • Eher weniger für Unit-Tests sondern für System-Tests
  • Hierfür eine Subclass von SPOCTestCaseWithAuth anlegen.
  • Ein fertiger Authrizer kann über self auth verwendet werden.
  • Falls ein ApiEndpoint getestet wird diesen mit SPOCTestApi<...> benennen (z.B. SPOCTestApiTrack)
  • In dieser Klasse gibt es dann wahrscheinlich eine testApi<...>Execute Methode (z.B. testApiTrack)
  • So könnte eine setUp aussehen, falls ein ApiEndpoint getestet wird
setUp
     apiEndpoint := SPOCApiTrack new authorizer: self auth; yourself
  • beim Ausführen der Tests muss darauf geachtet werden, dass sie überhaupt die Möglichkeit haben, zu passen:
    • ein device muss aktive sein, damit alle Tests passen, die getPlaybackState nutzen
    • für next und previous muss es eine Queue (Playlist/Album) geben, bei der es einen vorherigen und nächsten track gibt
⚠️ **GitHub.com Fallback** ⚠️