Heim  >  Artikel  >  Java  >  Wie automatisiere ich Integrationstests von Java-Funktionen?

Wie automatisiere ich Integrationstests von Java-Funktionen?

PHPz
PHPzOriginal
2024-04-28 11:03:021001Durchsuche

Für Java-Funktionen können Sie automatisierte Integrationstests mit JUnit, Mockito und Cloud Functions Framework durchführen. Die Schritte sind wie folgt: Abhängigkeiten installieren: Junit, Mockito-Core, Google-Cloud-Functions-Framework-Testing. Erben Sie FunctionsFrameworkExtensionRule, verspotten Sie die Anforderungs- und Antwortobjekte, rufen Sie die Funktion auf und bestätigen Sie die Antwort. Führen Sie den Test aus: Führen Sie den MVN-Testbefehl aus. So führen Sie automatisierte Integrationstests für Java-Funktionen durch. Einführung Automatisierte Integrationstests dienen dazu, zu überprüfen, ob Komponenten nach der Integration ordnungsgemäß funktionieren. Entscheidende Vorgehensweisen, auch für Java-Funktionen. In diesem Artikel erfahren Sie, wie Sie Integrationstests von Java-Funktionen mithilfe von JUnit, Mockito und Cloud Functions Framework automatisieren.

Wie automatisiere ich Integrationstests von Java-Funktionen?Abhängigkeiten installieren

Fügen Sie die folgenden Abhängigkeiten in Ihrem Projekt hinzu:

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.13.2</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.mockito</groupId>
  <artifactId>mockito-core</artifactId>
  <version>4.6.1</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-functions-framework-testing</artifactId>
  <version>3.4.1</version>
  <scope>test</scope>
</dependency>

Testfälle schreiben

Testklasse erstellen, geerbt von FunctionsFrameworkExtensionRule:

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;

import com.google.cloud.functions.HttpRequest;
import com.google.cloud.functions.HttpResponse;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

public class ExampleFunctionTest {

  @Rule
  public TestRule FUNCTIONS_FRAMEWORK_TEST_RULE = new FunctionsFrameworkExtensionRule();

  @Mock
  private HttpRequest request;

  @Mock
  private HttpResponse response;

  private BufferedWriter writerOut;
  private PrintWriter printWriter;

  @Before
  public void beforeEach() {
    MockitoAnnotations.initMocks(this);
    writerOut = new BufferedWriter(new PrintWriter(response.getWriter()));
    printWriter = new PrintWriter(writerOut, true);
  }

  @Test
  public void helloHttp_shouldPrintAName() throws IOException {

    // Mock request
    when(request.getReader()).thenReturn(new StringReader("{}"));

    // Invoke function under test
    new ExampleFunction().service(request, response);

    // Assert that the function writes "Hello World!" to the response
    writerOut.flush();
    assertThat(printWriter.toString()).isEqualTo("Hello World!");
  }
}

Praktischer Fall

Testen Sie im oben genannten Fall haben wir die Funktion ExampleFunction getestet, die eine Nachricht ausgegeben hat. Der Test simuliert das Anforderungsobjekt und das Antwortobjekt, ruft die Funktion auf und stellt sicher, dass die erwartete Nachricht in der Antwort vorhanden ist.

Tests ausführen

Um Tests auszuführen, führen Sie den Befehl mvn test aus.

Fazit

Durch die Verwendung von JUnit, Mockito und Cloud Functions Framework können Sie ganz einfach automatisierte Integrationstests von Java-Funktionen durchführen. Dadurch wird sichergestellt, dass Ihre Funktion auch nach der Integration mit anderen Komponenten weiterhin ordnungsgemäß funktioniert.

Das obige ist der detaillierte Inhalt vonWie automatisiere ich Integrationstests von Java-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn