Javaに関する記事一覧です。
14回にわたるTDDシリーズを振り返り、保守性への利点と今後の学習テーマを紹介します。実習コードのリポジトリも掲載しています。
TDDを実務に導入するときの開発コスト、スケジュール、チームの理解を得る方法と、テスト範囲の決め方を学びます。
単体テストと統合テストの違いを理解し、@SpringBootTestで全体の流れを検証します。Clock Beanで時刻を固定して再現性のある統合テストを作る方法も紹介します。
運用中のプロジェクトに新しい要件(割引ポリシー)が追加されたとき、既存コードを保護しながらTDDで機能を拡張する方法を学びます。
隠れた依存関係、乱数、時刻など、テストしにくいコードの特徴を確認し、依存性注入によってテストしやすい構造へリファクタリングする方法を学びます。
@Validによる入力値検証とビジネス例外のテスト方法を扱い、@RestControllerAdviceを用いたグローバル例外処理も解説します。
@WebMvcTestとMockMvcを使ってController層をテストし、APIリクエストとレスポンスを検証する方法を解説します。
Mockitoで依存性を分離し、状態検証と振る舞い検証を使い分ける方法をSpring Bootの例で解説します。
メモリ上のストレージをJPA Repositoryに置き換え、@DataJpaTestでデータベース関連の処理を安全かつ独立してテストする方法を解説します。
API(Controller)を作る前に、主要なビジネスロジック(Service、Domain)をテストして実装する理由と方法を解説します。
Spring Bootの例でRepositoryを導入し、テストを維持しながら責任を分離してリファクタリングする方法を解説します。
TDDのGreen段階でテストを通すための最小限の実装を、Spring BootとJavaの例で解説します。
商品登録を例に、要件をテストケースへ分解し、Given-When-Thenで失敗するテストを書く方法を解説します。
Spring Bootプロジェクトの初期設定から、JUnit 5、AssertJ、Mockitoの基本的な使い方、適切なテストパッケージ構成まで解説します。
TDDの基本概念とRed-Green-Refactorの流れを、Spring BootとJavaの例を使って初心者向けに解説します。
テスト実行時によく出るJVMの警告がCDSとどう関係するかを説明し、-Xshare:offで表示を止める方法を紹介します。
カプセル化、継承、多態性、抽象化というOOPの4原則を解説します。
JPQLの限界を踏まえ、型安全なクエリビルダーQueryDSLの必要性と利点を学びます。基本設定、Q-Typeの生成、動的クエリの使い方を解説します。
SpringのAOPが横断的関心事をモジュール化する方法、主要用語、プロキシの仕組み、活用例を解説します。
Spring Bootを例に依存性注入と制御の反転を説明し、コンストラクターインジェクションが推奨される理由を解説します。