テスト中の私のクラスは Main 自体 (Main.doSomething) にアクセスします。
MockitoでPowermockを使用しています。
Main
Javaのクラスの予約語ではありません。これは、他のクラスと同じようにテストできることを意味します。doSomething
あるstatic
かどうかによって異なりますfinal
。
静的メソッドをモックする必要があることは悪い習慣です (モックすることになっている場合、メソッドは静的であってはなりません:クラスのテストが難しい場合 – クラスをリファクタリングします-- http://monkeyisland.pl/2008/ 01/14/mockito/ )。
それにもかかわらず、powermock でそれを行う方法は次のとおりです。
PowerMockito.mockStatic(Main.class);
PowerMockito.when(Main.doSomething()).thenReturn(something);
ドキュメントはこちら: http://code.google.com/p/powermock/wiki/MockStatic
静的メンバーをモックするには、次のようにします。
Whitebox.setInternalState(Main.class, doSomething);
より強力なモッキング フレームワークはJMockit
. これにより、モッキングとスタブ機能が強化されます。
チェックアウト:http://code.google.com/p/jmockit/