Java 関数の場合、JUnit、Mockito、Cloud Functions Framework を使用して自動統合テストを実行できます。 依存関係をインストールします: junit、mockito-core、google-cloud-functions-framework-testing テストを作成します。ケース: 継承 FunctionsFrameworkExtensionRule、リクエスト オブジェクトとレスポンス オブジェクトをシミュレートし、関数を呼び出してレスポンスをアサートします。 テストを実行します。 mvn test コマンドを実行します。
自動化する方法。 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 サイトの他の関連記事を参照してください。