EasyMock と Mockito でテストを学習しています。それらの違いは何ですか?それらの利点と欠点は何ですか?どちらを使用するのが良いですか?
10800 次
1 に答える
12
この質問は主に意見に基づいていますが、違いは次のとおりです。
違い:
- 記録/再生モードはありません-それらは必要ありません。Mockito モックでできることは、検証またはスタブの 2 つだけです。スタブは実行の前に行われ、その後検証が行われます。
- すべてのモックは「ナイス」です (コレクションを返すメソッドは null ではなく空のコレクションを返すため、さらにナイスです)。モックは優れていますが、好きなだけ厳密に検証し、
望ましくない相互作用を検出できます。- 読みやすくするための明示的な言語: verify() と when() VS expect(mock.foo()) と mock.foo() の混合 ('expect' なしのプレーンなメソッド呼び出し)。この議論は主観的だと思う人もいると思います:)
- 簡略化されたスタブ モデル - スタブ化されたメソッドは、何度呼び出されてもスタブ化された値で常に再生されます。EasyMock の andStubReturn()、および StubThrow() とまったく同じように機能します。また、さまざまな引数に対してさまざまな戻り値でスタブすることもできます (EasyMock のように)。
- スタブ化されたメソッドの検証はオプションです。通常、スタブ化された値がどこから来たのかよりも、正しく使用されているかどうかをテストする方が重要だからです。
- 検証は明示的です - 検証エラーは、どの相互作用が失敗したかを示すコード行を指します。オーダーの検証は柔軟であり、すべてのやり取りを検証する必要はありません。
- カスタム引数マッチャーは hamcrest マッチャーを使用するため、既存の hamcrest マッチャーを使用できます。(EasyMock は hamcrest と統合することもできますが、これは EasyMock の一部ではなく hamcrest です。hamcrest の
ドキュメントを参照してください)。
于 2013-11-10T14:10:49.833 に答える