This is a test message to test the length of the message box.
Login
ABAP Unit Testbarer Code
Erstellt von Software-Heroes

ABAP Unit - Testbarer Code (Teil 2)

127

In diesem Artikel geht es um das Thema Test Isolation und wie es unseren Code testbarer macht.

Werbung


Diese Woche fällt der Artikel etwas kürzer aus und wir werden dir nur das Thema Test Isolation näher bringen. Wieso ist es wichtig, seine eigenen Objekte testbar zu programmieren und wie kannst du die Abhängigkeiten zu anderen Objekten reduzieren.

 

Begriff

Bei der Test Isolation geht es vor allem um die Verwendung von Test Doubles um abhängige Komponenten zu steuern. Diese können, ohne Kontrolle, unsere eigenen Tests auf verschiedene Art und Weise beeinflussen:

  • Langsam - Unsere eigenen Tests können durch unbekannte Logik entsprechend langsam werden, da wir die Laufzeit nicht beeinflussen können
  • Defekt - Komponenten können sich in Entwicklung befinden oder durch eine Erweiterung kaputt sein, damit sind automatisch unsere Testfälle ebenfalls fehlerhaft, obwohl unsere Logik noch funktioniert
  • Ausgabe - Durch andere Komponenten kann es zu ungewollten Ausgaben (Anzeige, E-Mail, Erzeugung Belege, etc.) kommen
  • Eingabe - Es kann zu ungewollten Eingaben oder Popups kommen, die unsere Tests pausieren oder zum Absturz bringen

 

Es gibt noch viele weitere Gründe, warum du solche abhängigen Komponenten am besten isolieren solltest. Die Beispiele sollen aber ungefähr aufzeigen, was alles bei der Implementierung der Tests schief gehen kann.

 

Identifizierung

Entsprechend müssen solche abhängigen Komponenten auch identifiziert werden. Diese können zum Beispiel sein:

  • Instanziierung einer anderen Klasse
  • Interaktion mit der Datenbank
  • BAdI erzeugen und verwenden
  • Aufruf eines Funktionsbausteins
  • Ermittlung und Abgleich der aktuellen Uhrzeit

 

Methodik

Wie erreicht man eine Test Isolation? Hierbei gibt es eine ganz einfache Regel, verwende bei jeder Klasse ein Interface und arbeite im aufrufenden Coding genau mit diesem. Verwende bei der Datenhaltung und der Übergabe in Methoden, den Datentyp der implementierenden Klasse, sondern verwende immer nur das Interface. Damit ist am Ende dem aufrufenden Code egal, welches Objekt sich hinter der Referenz verbirgt, solange das Objekt das Interface verwendet.

Hinweis: Die Anlage eines Interfaces für jede Klasse kostet sehr viel Zeit und Disziplin, erzeugt aber ebenso viele neue Objekte im System. Der Aufwand lohnt sich aber und stellt dir für die Zukunft sauber, sowie testbare, Objekte zur Verfügung.

 

Fazit

In diesem Artikel haben wir dir gezeigt, wie den Code separieren kannst und wie dich Interfaces dabei unterstützen, testbaren Code zu schreiben. Im nächsten Artikel werden wir uns das Thema Dependency Injection näher ansehen.


Enthaltene Themen:
ABAP UnitABAPUnit TestsTestbarer CodeTest Isolation
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP Unit - Testausführung

Kategorie - ABAP

Welche Möglichkeiten gibt es zur Ausführung von ABAP Unit und welche versteckten Funktionen kennst du vielleicht noch nicht? Mehr Details zu den verschiedenen Modi in diesem Artikel.

25.06.2024

ABAP Unit - Automatisierung

Kategorie - ABAP

Wann gehen in der Entwicklung Objekte kaputt und welche Seiteneffekte können Anpassungen haben? In diesem Artikel schauen wir uns das Thema einmal näher an.

05.01.2024

ABAP Unit - TDF (Function Double)

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal an, wie wir mit Funktionsbausteinen als Abhängigkeit umgehen können, ohne diese mitzutesten.

07.04.2023

RAP - ABAP Unit (Service)

Kategorie - ABAP

Wie testet man den Service einer Schnittstelle oder RAP App eigentlich automatisch? In diesem Artikel schauen wir uns Unit Tests für OData Services an.

20.01.2023

RAP - ABAP Unit (Business Objekt)

Kategorie - ABAP

An dieser Stelle schauen wir uns einmal an, wie wir unser RAP Business Objekt automatisch testen können, um so alle wichtigen Funktionen per Knopfdruck zu prüfen.

13.01.2023