Mockitoでインターフェースをモック化する
技術ネタ。
タイトルの通りMockito(PowerMockito)でインターフェースをモック化しようとしたときにハマったのでメモ。
以下のインターフェース、クラスを作成しているとします。
・インターフェース:Sample
⇒メソッドとしてdoSomething()を定義
・実装クラス:SampleImpl
⇒メソッドとしてdoSomething()を実装
そして実装は以下のようになっているとする。
Sample instance = new SampleImpl();
instance.doSomething()
上記をMockito(PowerMockito)でモック化します。
以下で期待したように動きました。
// newするときと同じ感じでmock側は実装クラス Sample mock = Mockito.mock(SampleImpl.class); Mockito.doAnswer(~)when(mock).doSomething(); // モックはキャストする PowerMockito.whenNew(SampleImpl.class).withAnyArgments().thenReturn((SampleImpl)mock); // あとは、instance.doSomething()をコールしてる処理を実行
以上