Javaに最適なmockフレームワークは何ですか?

Javaでモックオブジェクトを作るのに最適なフレームワークは何ですか?なぜですか?それぞれのフレームワークの長所と短所は何ですか?

ソリューション

私はMockitoを使って成功しました。

JMockやEasyMockについて学ぼうとしたとき、学習曲線が少し急だと感じました(私だけかもしれませんが)。

Mockitoが好きなのは、シンプルできれいな構文で、すぐに理解できたからです。最小限の構文で一般的なケースをサポートするように設計されていますが、もっと複雑なことをしなければならないときも、私が望んでいることがサポートされていて、簡単に理解できました。

以下は、Mockitoのホームページに掲載されている例です(簡略化しています)。

import static org.mockito.Mockito.*;

List mockedList = mock(List.class);
mockedList.clear();
verify(mockedList).clear();

これ以上に簡単なことはありません。

唯一の大きな欠点は、スタティックなメソッドをモックできないことです。

解説 (12)

仕事ではEasyMockとEasyMock Class Extensionを多用していますが、かなり満足しています。基本的に必要なものはすべて揃っています。ドキュメントを見てください。EasyMockのすべての機能を示す、とても素晴らしいサンプルがあります。

解説 (2)

私はJMockでモックを使い始めましたが、最終的にはEasyMockを使うようになりました。EasyMockはまさに「より簡単」で、より自然に感じられる構文を提供してくれました。それ以来、切り替えていません。

解説 (0)