JUnitとMockitoの使用法を組み合わせたMRテストユニットのMRユニットを使用した場合の利得は何ですか?MRユニットとユニットテスト用のJUnit
具体的には、JUnitを使用して実行できないことは何か、それとももっと難しいですか?
私の考えは、すべてのロジックをマッパー/レデューサーからヘルパークラスに移動し、適切なメソッドがモックで呼び出されたことを確認することです。
なぜMRユニットを使用しますか?
JUnitとMockitoの使用法を組み合わせたMRテストユニットのMRユニットを使用した場合の利得は何ですか?MRユニットとユニットテスト用のJUnit
具体的には、JUnitを使用して実行できないことは何か、それとももっと難しいですか?
私の考えは、すべてのロジックをマッパー/レデューサーからヘルパークラスに移動し、適切なメソッドがモックで呼び出されたことを確認することです。
なぜMRユニットを使用しますか?
mrunitが提供する最も重要なことは、mapreduceジョブをテストするためのDSLだと思います。単体テストは読みやすさとストーリーを伝えるものでなければならないので、ドメインに合ったAPIを持っていれば、後でテストを書いて理解しやすくなります。
もう一つの重要な点は、JUnitのデフォルトアサーションよりもずっと優れたアサーションエラーと差分を提供することです。
もちろんJUnitに固執することもできますが、mrunitのほとんどを半分の方法で機能的に再実装することになります。
しかし私はmrunitのドメインが少し違うので、/またはどちらでもありません。 JUnitテストでは、しばしば何らかのロジックをテストするのに対し、特定のものを置く場合は、特定のものを取り出そうとします(カウンターが増える可能性もあります)。もちろん、ロジックを別々に置いてテストすることもできます(複雑なロジックがあればおそらくそうかもしれません)。そして、何らかの "ブラックボックス"テストのためにmrunitを使って、ロジックがどこでどのように実装されているか気にしないところでテストしますあなたの入力のための正しい出力を得る。