Static Methodのモック化の方法

  •  
 
yokoe2021年6月14日 - 10:57 に投稿

タグ

概要

今回業務で単体テスト中にStatic Methodをモック化し検証する必要があり調べたことをサンプルコードと合わせてあげたいと思います。

Static Methodのモック化方法

まず、Staticなメソッドをモック化する際の前提条件としてmockito-inline:3.4.0を使用している必要があります。

Staticなメソッドをモック化する際、MockitoのmockStaticメソッドを使用してモック化することができます。 以下にサンプルを記述します。

MockedStatic<XXX> mock = mockStatic(XXX.class);

XXXにモック化したいStaticなメソッドがあるクラスを指定します。

モック化したクラスの引数の無いStaticなメソッドを呼び出す場合、メソッド参照を使ってStaticなメソッドを呼び出す。 Staticなメソッドの返り値の設定方法は以下のように設定する。

mock.when(XXX::name).thenReturn("Hanako");

また引数のあるStaticなメソッドを呼び出す場合はラムダ式を用いてStaticなメソッドを呼び出すことができます。 以下にラムダ式での方法を記述します。

mock.when(() -> { XXX.name(Mockito.anyString()); }).thenReturn("Hanako");

引数の無いStaticなメソッドもラムダ式を用いて呼び出すことが可能です。 以下に方法を記述します。

mock.when(() -> XXX.name()).thenReturn("Hanako");

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。