EasyMock - Javaユニットテスト モックオブジェクト生成フレームワーク
EasyMockは、Java ProxyメカニズムでJUnitなどの単体テストに、Mock Object(モックオブジェクト)を提供するためのフレームワークです。
ユニットテストは、ソフトウェアの一部の機能が正しく動くかどうかを検証するために、よく使われるテスト手法です。ほとんどの場合、これらの機能は独立したものではなく、他の機能と連動して動作します。
EasyMockは、連動部分の機能に対して、擬似(mock)オブジェクトを提供することで、テストに注意を集中することができます。
◇ 言語:Java
◇ ライセンス:MIT license
実行結果:
モックオブジェクト - Wikipedia
モック・オブジェクト 対 コンテナ内テスト
ユニットテストは、ソフトウェアの一部の機能が正しく動くかどうかを検証するために、よく使われるテスト手法です。ほとんどの場合、これらの機能は独立したものではなく、他の機能と連動して動作します。
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
/mycontext
参考資料
モックオブジェクト - Wikipedia
モック・オブジェクト 対 コンテナ内テスト