オープンソースコラム


2009/03/23 16:09Update

EasyMock - Javaユニットテスト モックオブジェクト生成フレームワーク

TAGS: EasyMock | MockObject | Mock | モックオブジェクト | ユニット | テスト | 擬似 | JUnit | TestNG

スポンサード リンク


EasyMockは、Java ProxyメカニズムでJUnitなどの単体テストに、Mock Object(モックオブジェクト)を提供するためのフレームワークです。                                              

ユニットテストは、ソフトウェアの一部の機能が正しく動くかどうかを検証するために、よく使われるテスト手法です。ほとんどの場合、これらの機能は独立したものではなく、他の機能と連動して動作します。

EasyMockは、連動部分の機能に対して、擬似(mock)オブジェクトを提供することで、テストに注意を集中することができます。

◇ 言語:Java
◇ ライセンス:MIT license

簡単な使い方


import javax.servlet.http.HttpServletRequest;

import org.easymock.EasyMock;

public class TestEasyMock {

    /**
     * EasyMock 簡単な使い方
     */
    public static void main(String[] args) {
        testMock();
    }

    @SuppressWarnings("deprecation")
    public static void testMock() {
        //モックオブジェクト作成
        HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
        
        //モックオブジェクトの値を設定
        EasyMock.expect(request.getParameter("userId")).andReturn("testUserId");
        EasyMock.expect(request.getRealPath("/")).andReturn("/mycontext").anyTimes();
        
        EasyMock.replay(request);
        //値取得
        System.out.println(request.getParameter("userId"));
        System.out.println(request.getRealPath("/"));
        
        EasyMock.verify(request);
    }
}


実行結果:
testUserId
/mycontext

参考資料


モックオブジェクト - Wikipedia
モック・オブジェクト 対 コンテナ内テスト

Sponsored Link