22

最近、私は Mockito フレームワークに切り替えましたが、とても満足しています (ブログ投稿も参照してください)。EasyMock から Mockito への切り替えは非常に簡単で、テストをダウンコンパチブルにすることができました (つまり、テスト ケースは同じように動作します)。

MockitoよりもEasyMockを好む本当の理由や銃撃戦の基準がわかりますか? これまでのところ、私が使用したコードベースについてはできませんが、あなたの視点に興味があります.

4

4 に答える 4

23

Mockitoは、BDDスタイルの単体テストを可能にするために開発されました。

  • 与えられた(ユニットテストが実行されるコンテキスト)
  • いつ(あなたが興味のある行動を生み出すイベント)
  • 次に(あなたが探している結果)。

とは対照的に

  • 与えられた
  • 期待する(ここで検証が行われます)
  • いつ
  • 次に(ここに実際の情報がないため、戻ってExpectに書き込んだ内容を確認してください)。

IMHOは、より読みやすいテストを生成し、実行しているコンテキスト(モックの設定)や関心のある動作の検証などを分離できます。以前のモックフレームワークでは、すべてのそのテストで見た行動の側面に関連しているかどうかに関係なく、相互作用。

于 2010-06-28T11:33:26.190 に答える
7

私は Mockito よりも EasyMock に精通しているので、少し掘り下げる必要がありました。Mockito には、Mockito の観点から明示的な比較を行うページがあります。

私が見ているように、Mockito の利点は次のとおりです。

  • スタブと検証の明示的な分離
  • マッチャーは、カスタム API ではなく、Hamcrest (JUnit でもサポートされています) に基づいています。
  • 作成されたモックは常に「いい」ものです。つまり、モックされていないメソッド呼び出しは、失敗するのではなく、クリーンなデータ (空のリストなど) を返します。

EasyMock には非常によく似た関数セットがあります。Mockito のコアとなる差別化要因は、Mockito チームが制限または準最適なプラクティスであると考えた EasyMock の領域に基づいています。

機能的な観点から見ると、どちらの製品も静的メソッドをモックできません (MBeanServer なしでテストするためにこれを行う必要がありました) が、その場合、どちらのフレームワークの上でも PowerMock を使用できます。

テスト要件に合ったスタイルを選択してください。

お役に立てれば!

于 2010-06-27T19:13:31.920 に答える
6

Mockito は、私が最後に試したときよりも今の方が優れているかもしれませんが、API が変更されて以前のバージョンと互換性がなくなったときに、私を失ってしまいました。最新バージョンにアップグレードするには、既存の単体テストの多くを変更する必要があり、これは受け入れられないことがわかりました。私のニーズには未熟で不安定すぎると判断しました。

とはいえ、何か問題があるわけではありません。私が使用していたバージョンはまだ正常に動作しますが、その後 EasyMock に切り替えました。

于 2010-06-27T20:52:25.760 に答える
1

ここにジャーナリズムの外観があります。

Mockito のケース: http://code.google.com/p/mockito/wiki/MockitoVSEasyMock

EasyMock のケース: http://blog.octo.com/en/easymock-facts-fallacies/

于 2013-10-22T18:11:37.543 に答える