Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Integrationstests | Testen in der Entwicklung
Java JUnit Bibliothek. Arten von Tests
course content

Kursinhalt

Java JUnit Bibliothek. Arten von Tests

Java JUnit Bibliothek. Arten von Tests

1. Testen in der Entwicklung
2. Unit Tests
3. Ausnahmen

book
Integrationstests

Im vorherigen Kapitel haben wir über Unit-Tests gesprochen, bei denen wir einzelne Module getestet haben. Das Programm kann jedoch immer noch nicht korrekt funktionieren, wenn wir nur einzelne Module isoliert getestet haben. Module interagieren ständig miteinander; ein Modul wird in einem anderen verwendet, das zweite im dritten und so weiter. Solche Interaktionen zwischen Modulen müssen ebenfalls getestet werden, und diese Testebene wird als Integrationstests bezeichnet.

Zum Beispiel haben wir eine Engine-Klasse mit ihren Feldern und Methoden, sowie eine Car-Klasse, in der eine Instanz der Engine-Klasse durch Komposition erstellt wird. Mit anderen Worten, die Methoden der Car-Klasse beziehen ein Objekt der Engine-Klasse ein. Es erfolgt eine Integration, was bedeutet, dass wir testen müssen, ob diese Integration korrekt durchgeführt wird.

java

Engine

java

Car

copy
123456789101112131415
public class Engine { private boolean running; public void start() { running = true; } public void stop() { running = false; } public boolean isRunning() { return running; } }

Wie Sie sehen können, haben wir 2 Klassen (Sie können oben zwischen den Dateien wechseln), jede mit ihren eigenen Methoden. In der Car-Klasse sehen Sie eine Instanz der Engine-Klasse, die erstellt wird. Dies wird als Komposition bezeichnet. Innerhalb der Methoden der Car-Klasse verwenden wir die Methoden der Engine-Klasse, was bedeutet, dass wenn etwas schiefgeht in der Engine-Klasse, die Methoden in der Car-Klasse ebenfalls fehlschlagen. Hier ist also der Algorithmus, was wir tun müssen:

  • Zuerst müssen wir alle Methoden der Engine-Klasse isoliert testen;
  • Dann müssen wir die Methoden der Car-Klasse testen;
  • Diese Tests werden Integrationstests sein, da die Methoden der Car-Klasse die Methoden der Engine-Klasse verwenden;
  • Wenn die Integrationstests erfolgreich sind, führen wir Unit-Tests der Car-Klasse durch. (Solche Tests sind möglicherweise überhaupt nicht erforderlich, wenn die Car-Klasse keine Methoden hat, die keine Instanz der Engine-Klasse verwenden.)

In unserem Beispiel werden wir nur Integrationstests benötigen, um Sie nicht mit unnötigen Schritten zu überfordern. Das Ziel dieses Kapitels ist es, Integrationstests zu demonstrieren.

Ich habe die Codeblöcke hervorgehoben, in denen Tests durchgeführt werden, mit Kommentaren. Wie Sie sehen können, ist der Test selbst einfach und unkompliziert. Es gibt nichts Komplexes in einem solchen Test, und es zeigt, dass verschiedene Module korrekt miteinander interagieren.

Eine Demonstration eines ausführbaren Beispiels:

java

main

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
package com.example; public class Main { public static void main(String[] args) { Car car = new Car(); // Testing engine start car.startEngine(); if (car.isEngineRunning()) { System.out.println("Engine start test passed successfully."); } else { System.out.println("Engine start test failed."); } // Testing engine stop car.stopEngine(); if (!car.isEngineRunning()) { System.out.println("Engine stop test passed successfully."); } else { System.out.println("Engine stop test failed."); } } } class Engine { private boolean running; public void start() { running = true; } public void stop() { running = false; } public boolean isRunning() { return running; } } class Car { private Engine engine; public Car() { this.engine = new Engine(); } public void startEngine() { engine.start(); } public void stopEngine() { engine.stop(); } public boolean isEngineRunning() { return engine.isRunning(); } }

So haben wir einen grundlegenden Integrationstest durchgeführt, der zeigt, dass diese Methoden korrekt zusammenarbeiten. Der Integrationstest war erfolgreich, und die Methoden wurden erfolgreich getestet. Großartig! Wir werden im dritten Abschnitt dieses Kurses tiefer in die Integrationstests eintauchen.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt