ホームページ > Java > &#&チュートリアル > Java 関数の統合テストを自動化するにはどうすればよいですか?

Java 関数の統合テストを自動化するにはどうすればよいですか?

PHPz
リリース: 2024-04-28 11:03:02
オリジナル
1021 人が閲覧しました

Java 関数の場合、JUnit、Mockito、Cloud Functions Framework を使用して自動統合テストを実行できます。 依存関係をインストールします: junit、mockito-core、google-cloud-functions-framework-testing テストを作成します。ケース: 継承 FunctionsFrameworkExtensionRule、リクエスト オブジェクトとレスポンス オブジェクトをシミュレートし、関数を呼び出してレスポンスをアサートします。 テストを実行します。 mvn test コマンドを実行します。

Java 関数の統合テストを自動化するにはどうすればよいですか?

自動化する方法。 Java 関数の統合テスト

はじめに

自動統合テストは、コンポーネントが統合後に適切に動作することを検証するための重要な実践であり、Java にも同じことが当てはまります。機能。この記事では、JUnit、Mockito、Cloud Functions Framework を使用して Java 関数の統合テストを自動化する方法について説明します。

依存関係のインストール

次の依存関係をプロジェクトに追加します:

<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>
ログイン後にコピー

テスト ケースの作成

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!");
  }
}
ログイン後にコピー

実際のケース

上記のテスト ケースでは、 ExampleFunction function 、関数をテストしました。メッセージを印刷しました。テストでは、要求オブジェクトと応答オブジェクトをシミュレートし、関数を呼び出して、期待されるメッセージが応答に存在することをアサートします。

テストの実行

テストを実行するには、mvn test コマンドを実行します。

結論

JUnit、Mockito、Cloud Functions Framework を使用すると、Java 関数の自動統合テストを簡単に実行できます。これは、他のコンポーネントと統合した後も、関数が適切に動作することを保証するのに役立ちます。

以上がJava 関数の統合テストを自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート