Maison >Java >javaDidacticiel >Comment automatiser les tests d'intégration des fonctions Java ?

Comment automatiser les tests d'intégration des fonctions Java ?

PHPz
PHPzoriginal
2024-04-28 11:03:021004parcourir

Pour les fonctions Java, vous pouvez effectuer des tests d'intégration automatisés à l'aide de JUnit, Mockito et Cloud Functions Framework. Les étapes sont les suivantes : Installer les dépendances : junit, mockito-core, google-cloud-functions-framework-testing. Hériter de FunctionsFrameworkExtensionRule, simuler les objets de requête et de réponse, appeler la fonction et affirmer la réponse Exécuter le test : Exécuter la commande mvn test

Comment automatiser les tests dintégration des fonctions Java ?

Comment effectuer des tests d'intégration automatisés sur les fonctions Java

Introduction

. Les tests d'intégration automatisés visent à vérifier que les composants fonctionnent correctement après l'intégration. Pratiques cruciales, également pour les fonctions Java. Cet article vous expliquera comment automatiser les tests d'intégration des fonctions Java à l'aide de JUnit, Mockito et Cloud Functions Framework.

Installer les dépendances

Ajoutez les dépendances suivantes dans votre projet :

<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>

Écrire des cas de test

Créer une classe de test, héritée de 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!");
  }
}

Cas pratique

T est dans ce qui précède Dans le cas , nous avons testé la fonction ExampleFunction, qui affichait un message. Le test simule l'objet requête et l'objet réponse, appelle la fonction et affirme que le message attendu est présent dans la réponse. ExampleFunction 函数,该函数打印了一条消息。测试通过模拟请求对象和响应对象,调用函数并断言响应中存在预期的消息。

运行测试

要运行测试,请运行 mvn test

Exécuter des tests

Pour exécuter des tests, exécutez la commande mvn test.

🎜Conclusion🎜🎜🎜En utilisant JUnit, Mockito et Cloud Functions Framework, vous pouvez facilement effectuer des tests d'intégration automatisés des fonctions Java. Cela permet de garantir que votre fonction fonctionne toujours correctement après avoir été intégrée à d'autres composants. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn