Springのテスト(WebTestClient/JUnit)
WebTestClientとJUnitの基本を使って、コントローラー向けの軽量なテストを記述します。
「Springのテスト(WebTestClient/JUnit)」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。
導入
目標:JUnitの基本と、テストでWebTestClientがHTTPリクエストを使ってコントローラーにアクセスする方法を理解します。
JUnitの基本
JUnitはアサーションとテストメソッドを提供します。Spring Bootでは、SpringExtensionまたは@SpringBootTestを使ってテストを実行します。
コード:アサーションの考え方
テストでは期待値と実際の値を比較し、結果をわかりやすく報告します。JUnitはこの考え方を自動化します。
public class Main {
// Simple, runnable demo of assertion-like checks (not JUnit), prints PASS/FAIL.
static void assertEquals(int expected, int actual, String name) {
if (expected == actual) {
System.out.println(name + ": PASS");
} else {
System.out.println(name + ": FAIL expected " + expected + " but was " + actual);
}
}
public static void main(String[] args) {
// Pretend we test a controller method that adds numbers.
int sum = 2 + 3; // pretend controller result
assertEquals(5, sum, "addsTwoNumbers");
}
}
WebTestClientの概要
WebTestClientはテストでコントローラーにHTTPリクエストを送信し、ステータス、ヘッダー、ボディを検証します。
コード:リクエストから検証までの流れ
実際のテストではこのモックではなくWebTestClientを使いますが、流れは似ています:リクエスト → ハンドラー → 検証。
public class Main {
// Simulate an HTTP test: build request, call handler, verify response.
static String handleHello(String path) {
// pretend controller:
if ("/hello".equals(path)) return "Hello";
return "404";
}
public static void main(String[] args) {
String response = handleHello("/hello");
if ("Hello".equals(response)) {
System.out.println("GET /hello -> 200 OK, body=Hello (PASS)");
} else {
System.out.println("GET /hello -> FAIL");
}
}
}
コード:エラーパスを検証
WebTestClientでは、ステータスコードと任意のエラーペイロードをアサートします。
public class Main {
// Simulate verifying error responses.
static int deleteUser(long id) {
// pretend service: only id 1 exists
if (id == 1L) return 204; // No Content
return 404; // Not Found
}
public static void main(String[] args) {
int status = deleteUser(99L); // should be 404 in our scenario
if (status == 404) {
System.out.println("DELETE /users/99 -> 404 (PASS)");
} else {
System.out.println("DELETE /users/99 -> FAIL got " + status);
}
}
}
WebTestClientの確認
クイックチェック:WebTestClientは一般に何に使われますか?
まとめ
まとめ:JUnitはアサーションとテストメソッドを提供します。WebTestClientはコントローラーのHTTPテストに使います。ステータスとボディを明確に検証します。
よくある質問
「Springのテスト(WebTestClient/JUnit)」レッスンは無料ですか?
はい。「Springのテスト(WebTestClient/JUnit)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。
「Springのテスト(WebTestClient/JUnit)」で何を学びますか?
WebTestClientとJUnitの基本を使って、コントローラー向けの軽量なテストを記述します。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「Springのテスト(WebTestClient/JUnit)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。