1. ホーム
  2. unit-testing

[解決済み] MOCKITOとは何か、Junitとはどう違うか

2022-03-07 13:53:27

質問

Mockitoとは何ですか?

Junitをサポートしているのか、それともJunitのテストケースを書くための環境なのか?

JunitとMockitoの違いについて教えてください。

どのように解決するのですか?

JUnit は、ユニットテストの作成と実行を支援するフレームワークです。

Mockito(または他のモッキング・ツール)は、ある種のテストを効率的に記述するために特別に使用するフレームワークです。モッキング・フレームワークの核心は、プロダクション・クラスのオブジェクトのインスタンス化を省略し、代わりにスタブを作成することです。そうすることで、モック化されたオブジェクトを完全に制御できるようになり、例えば行われているインタラクションを検証することができるようになります。

とはいえ、ユニットテストの核となる要素の1つは、テスト対象のクラスを世界中の他のものから隔離したいという事実です。そのためには、多くの場合、テスト対象のクラスのオブジェクトに提供する、quot;テストダブル(test doubles);を作成しなければなりません。これらのテストダブルはすべて手作業で作成することもできますし、モッキングフレームワークを使用して 生成する のオブジェクトを、リフレクションの技術を使って、あなたのために作ってくれるのです。面白いことに、モッキングフレームワークを使わないことを提唱する人もいますが、正直なところ、そんなことは想像もつきません。

言い換えれば、モッキングフレームワークを使わなくても、JUnitは間違いなく使えるということです。逆も同様です。しかし、現実には、ユニットテスト以外にMockitoを使いたい正当な理由はあまりありません。