単体テストを書くのは難しい場合があり、テスト容易性だけを目的として優れた設計を犠牲にしなければならない場合もあります。多くの場合、テスト容易性は優れた設計に対応しますが、常にそうとは限りません。たとえば、既存のフレームワークの制限のため、final クラスやメソッドは使用できません、プライベート メソッドは保護するか不必要にコラボレーターに移動する必要がある場合があります、静的メソッドは完全に避ける必要があるなどです。
PowerMock は、EasyMock などの他のモック ライブラリをより強力な機能で拡張するフレームワークです。 PowerMock はカスタム クラスローダーとバイトコード操作を使用して、静的メソッド、コンストラクター、最終クラスとメソッド、プライベート メソッド、静的イニシャライザーの削除などのモックを有効にします。カスタム クラスローダーを使用すると、IDE や継続的統合サーバーに変更を加える必要がなく、導入が簡素化されます。サポートされているモック フレームワークに慣れている開発者は、静的メソッドとコンストラクターの両方で期待される API 全体が同じであるため、PowerMock が使いやすいことがわかります。 PowerMock は、少数のメソッドとアノテーションを使用して既存の API を拡張し、追加機能を有効にすることを目的としています。現在、PowerMock は EasyMock と Mockito をサポートしています。
単体テストを作成する場合、カプセル化をバイパスすると便利な場合が多いため、PowerMock には、テストに特に役立つリフレクションを簡素化するいくつかの機能が含まれています。これにより、内部状態に簡単にアクセスできるだけでなく、部分的およびプライベートなモックも簡素化されます。
PowerMock は主に単体テストの専門知識を持つ人を対象としていることに注意してください。若手開発者の手に渡されると、良いことよりも害の方が大きくなる可能性があります。
@PowerMockIgnore
などの新機能、バグ修正およびその他の改善が含まれています。詳細については、リリース ノートと変更ログを参照してください。古いニュース
開始する前に、新しい投稿者向けのガイドラインをお読みください。
質問、フィードバック、サポートが必要な場合は、こちらのメーリング リストに参加してください。