概要
今回業務で単体テスト中に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");
- 閲覧数 4911
コメントを追加