10.1. 単体テスト概要¶
10.1.1. はじめに¶
本章では、TERASOLUNA Server Framework for Java (5.x)を使用したシステムにおける、JUnitを用いた単体テストについて提示する。
ここでの単体テストのスコープはレイヤまたはレイヤ間結合とし、テストに関するアクティビティのうち、テスト実装とテスト実施に関して解説する。なお、解説するテスト実装は参考例でありシステムの品質を保証するためのテスト方針については、別途検討いただきたい。
10.1.2. 単体テストガイドラインが示すこと¶
本章では、以下のOSSライブラリを使用したレイヤまたはレイヤ間のテスト実装方法について説明する。
10.1.2.1. 単体テストで利用するOSSライブラリ構成¶
10.1.2.1.1. テスティングフレームワーク¶
Javaのテスティングフレームワークとして、JUnitを使用する。
10.1.2.1.2. アサーション¶
10.1.2.1.3. モック化¶
テスト対象のメソッドが依存するクラスをモック化するためのライブラリとしてMockitoを使用する。
10.1.2.1.4. DIコンテナ¶
テスト用のDIコンテナとしてSpring TestのDI機能を使用する。
10.1.2.1.5. MVCフレームワーク¶
テスト用のMVCフレームワークとしてSpring MVC Test Frameworkを使用する。
10.1.2.1.6. トランザクション管理¶
テスト用のトランザクション管理としてSpring Testのトランザクション管理機能を使用する。
10.1.2.1.7. データアクセス¶
テスト用のデータアクセスとして、Spring TestまたはDBUnitとSpring Test DBUnitを使用することを想定している。
-
Spring Testは
@SqlアノテーションやJdbcTemplateなどを使用してSQLを発行する機能を提供している。
-
- Spring Test DBUnitは、Spring Framework上でDBUnitを利用する際の支援ライブラリのため、DBUnitと組み合わせて使用する。DBUnitの提供するデータベースのセットアップ、状態の検証などの機能をアノテーションベースで実装する機能を提供している。
10.1.2.2. 単体テストで利用するOSSライブラリのバージョン¶
単体テストで利用するOSSライブラリの一覧を以下に示す。
以下のOSSライブラリの中で、特にSpring Test(MockMvc)、Mockitoの使い方については、単体テストで利用するOSSライブラリの使い方で詳細を説明する。
Type |
GroupId |
ArtifactId |
Version |
Spring Boot |
|---|---|---|---|---|
JUnit |
org.junit.jupiter |
junit-jupiter |
6.0.2 |
* |
AssertJ |
org.assertj |
assertj-core |
3.27.6 |
* |
Mockito |
org.mockito |
mockito-junit-jupiter |
5.20.0 |
* |
Spring Test |
org.springframework |
spring-test |
7.0.3 |
* |
DBUnit |
org.dbunit |
dbunit |
3.0.0 |
|
Spring Test DBUnit |
com.github.springtestdbunit |
spring-test-dbunit |
1.3.0 |
10.1.2.3. 単体テストの実装¶
10.1.3. 対象読者¶
本章は、このドキュメントの対象読者に加えて以下の知識・経験があることを前提としている。
JUnitを使用した単体テストを行ったことがある
10.1.4. 単体テストの動作検証環境¶
種別 |
名前 |
|---|---|
OS |
Windows 11 |
JVM |
Java 17 |
IDE |
Spring Tool Suite 5.0.0.RELEASE (以降「STS」と呼ぶ。設定方法はSTSの設定手順を参照されたい。) |
Build Tool |
Apache Maven 3.9.9 (以降「Maven」と呼ぶ) |
RDBMS |
PostgreSQL 18.1 |