Skip to content

tonbiattack/learn-java-with-tests

Repository files navigation

learn-java-with-tests

learn-go-with-tests の考え方を Java に持ち込んだ、JDK 21 前提の TDD 学習教材です。

小さな失敗するテストを書き、最小限の実装で通し、リファクタリングする流れで Java を学びます。

ねらい

  • 自動テストを書きながら Java の基礎を学ぶ
  • red -> green -> refactor の TDD サイクルに慣れる
  • JDK 21 時代の Java で、堅い設計と小さな反復を練習する

前提

  • JDK 21 がインストールされていること
  • ターミナルを使えること
  • if、変数、関数のような基礎的なプログラミング経験があること

実行方法

このリポジトリには 2 つのテスト実行方法を用意しています。

  1. Maven を使う
mvn test
  1. Maven なしで PowerShell スクリプトを使う
./scripts/run-tests.ps1

初回実行時に Apache Maven.tools 配下へダウンロードします。

目次

Java 基礎

  1. Java をインストールする
  2. Hello, World
  3. 整数
  4. 反復
  5. 配列とリスト
  6. クラスとインターフェース
  7. 例外と状態
  8. マップ
  9. 依存性注入
  10. モック
  11. 並行性
  12. Select
  13. リフレクション
  14. 同期
  15. Context
  16. プロパティベーステスト概要
  17. Maths

アプリケーションを作る

  1. HTTP API 入門
  2. IO と永続化
  3. コマンドライン
  4. Time
  5. WebSockets

Spring Boot を深める

  1. Spring Boot を TDD で進める - 計画中
  2. Spring Data JPA を TDD で学ぶ
  3. Testcontainers を使う発展章
  4. Validation と例外ハンドリング
  5. RestClient / WebClient のテスト
  6. 認証が入った API のテスト
  7. 非同期イベントのテスト - 計画中

Questions and answers

  1. OS 実行
  2. コンテキスト認識リーダー

コード配置

各章のサンプルコードは src/main/java/dev/learnjavawithtests/...、テストは src/test/java/dev/learnjavawithtests/... にあります。

v1 はその章の最初の完成版です。今後章を増やす場合は v2, v3 のように段階を足せます。

元ネタ

Spring を使う方針

基礎章ではまず素の 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 と単体テストを組み合わせる方針です。

次に追加しやすい章

  • Stream
  • Optional
  • HTTP クライアント/サーバ
  • Security
  • 非同期イベント

About

自動テストを書きながら Java を学ぶ教材

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages