learn-go-with-tests の考え方を Java に持ち込んだ、JDK 21 前提の TDD 学習教材です。
小さな失敗するテストを書き、最小限の実装で通し、リファクタリングする流れで Java を学びます。
- 自動テストを書きながら Java の基礎を学ぶ
red -> green -> refactorの TDD サイクルに慣れる- JDK 21 時代の Java で、堅い設計と小さな反復を練習する
JDK 21がインストールされていること- ターミナルを使えること
if、変数、関数のような基礎的なプログラミング経験があること
このリポジトリには 2 つのテスト実行方法を用意しています。
- Maven を使う
mvn test- Maven なしで PowerShell スクリプトを使う
./scripts/run-tests.ps1初回実行時に Apache Maven を .tools 配下へダウンロードします。
- Java をインストールする
- Hello, World
- 整数
- 反復
- 配列とリスト
- クラスとインターフェース
- 例外と状態
- マップ
- 依存性注入
- モック
- 並行性
- Select
- リフレクション
- 同期
- Context
- プロパティベーステスト概要
- Maths
- Spring Boot を TDD で進める - 計画中
- Spring Data JPA を TDD で学ぶ
- Testcontainers を使う発展章
- Validation と例外ハンドリング
- RestClient / WebClient のテスト
- 認証が入った API のテスト
- 非同期イベントのテスト - 計画中
各章のサンプルコードは src/main/java/dev/learnjavawithtests/...、テストは src/test/java/dev/learnjavawithtests/... にあります。
v1 はその章の最初の完成版です。今後章を増やす場合は v2, v3 のように段階を足せます。
基礎章ではまず素の Java で文法と設計に集中し、その後のアプリケーション章で Spring Boot を使います。
2026-06-10 時点では、Spring Boot 3.5.14 は公式ブログで公開されている安定版で、公式ドキュメント上も Java 17 以上が必要条件です。JDK 21 ならこの教材の方針と噛み合います。
ORM を扱う章では Spring Data JPA を使います。JPA を controller 直下に置くのではなく、service / repository / entity の責務を分けて、@DataJpaTest と単体テストを組み合わせる方針です。
StreamOptionalHTTP クライアント/サーバSecurity非同期イベント