Spring Test
Spring Framework上で動かすために作成したクラス(@Controller、@Service、@Repository、@Componentを付与したクラスなど)のテストを支援するモジュール
単体テスト
テスト対象のクラスの中で依存している他のコンポーネント:モックやスタブなどを使用して実行結果が他のコンポーネントに左右されないようにする
結合テスト
テスト対象のクラスの中で依存している他のコンポーネント:DIコンテナから取得してテスト
JUnit上にSpringのDIコンテナを起動して、DIコンテナ内のBeanに対してテスト
ただし、DBなどの外部リソースへのアクセスは、結合テストでもモックやスタブを使用する可能性あり
依存コンポーネントをモック化するライブラリ:Mockito
SpringのDIコンテナに登録したBeanへのテスト
データベースアクセスを伴う処理へのテスト
テスト実行前に、前提を満たすようなテストデータを登録できるには@Sqlをつかう
テストによってDBの状態を変化させたくないときは@Transactionalをつかう
テストデータのセットアップとテスト自体を同一トランザクションで実行し、テストが終了した時点でトランザクションをロールバックすることで実現
MockMVC
アプリケーションサーバにデプロイせずに、Spring MVCの動作を再現する
2つのモードがある
10.2.2. レイヤごとのテスト実装 — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.8.1.RELEASE documentation
Spring MVC上で動くControllerへのテスト
public.icon