Skip to content

Mockit で戻り値void のメソッドを書き換える

Mockit は素晴らしいライブラリである。Java のテスト自動化には必須と言っても良いだろう。API が分かり易いので、導入も簡単である。多くの場合は仲間のコードを真似ていればほぼ問題ない。そんなMockit だが、戻り値 void のメソッドをモックする場合は躓き易いと思った。

いつもの(戻り値がvoid でない)場合はこう書く。

Mockit.when(myObject.myMethod()).thenAnswer(invocation -> {
  // 何かの処理
  return something;
});

これで、テストコード実行時にmyMethod() の本物のコードは実行されず、thenAnswer に記載したラムダ式(// 何かの処理 return something;)が実行される。

しかし、myMethod() の戻り値がvoid であった場合、このコードはEclipse 等IDE に怒られる。

そこで、こう書く。

Mockit.doAnswer(invocation -> {
  // 何かの処理
  return something;
}).when(myObject.myvoidMethod());

※myVoidMethod() の戻り値は void である

when と answer の記載順序が逆になる点がポイントだ。

参考

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です