Struts2 Mockitoを使う

2016年02月28日(編集2016年02月28日)
このエントリーをはてなブックマークに追加

Struts2でMockitoを扱う方法を記載します。
環境はStruts2, javaはoracle jdkを利用します。

環境

  • CentOS6.5
  • oracle jdk version 1.8.0_71
  • Struts2 version 2.3.16.2
  • Mockito version 2.0.43

内容

初心者向け

Mockitoとは

Mockitoはモック(下位モジュールスタブの一種)を利用してコードをテストすることができるjavaのテスティングフレームワークです。
Struts2やspringだけでなく、androidでも利用可能です。

インストール

Struts2の場合は、mavenを利用するのが一般的です。androidならgradleを利用しましょう。

{project_folder}/pom.xml
        
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>2.0.43-beta</version>
</dependency>
        

上記のコードをpom.xmlに記載したら、mavenを実行することでインストールされます。

使用例

サンプルとしてDBの結果オブジェクトをモックで受けとってみます。

本来、データベースを使用するテストをする時は、データベースにテストデータを入れてから接続して、結果オブジェクトを受け取ります。
しかし、Mockitoを利用すると、データベースに接続しなくてもモックのDB結果オブジェクトを取得することができます。

{project_folder}/service/MockitoTest.java

@Test
public void testFindById() {
    // DAOのモックを作成する
    SampleTableDao mockSampleTableDao = org.mockito.Mockito.mock(SampleTableDao.class);
    when(mockSampleTableDao.findById()).thenReturn(null);
}
        

上記の実装は、Sampleテーブルに接続するSampleTableDaoクラスで、findByIdメソッドを呼び出すとnullが返却されるようにしています。

このように、Mockitoを利用することで、あたかもDBに接続した時のように振る舞わせることが可能になります。
ただし、使いすぎるとテストがザルになってしまうので注意してください。

以上です。

タグ検索で調べてみよう

Struts2 Test