weblog@kentama

技術的なメモ置き場。主にJava。

PowerMock + Mockitoでstaticメソッドをモック化

以下のバージョンを使用

  • PowerMock:1.7.3
  • Mockito:2.8.9
// モック化するクラス
public class StaticFoo {
    public static String staticMethod() {
        return "bar";
    }
}

// テストケース
@RunWith(PowerMockRunner.class) // 1
@PrepareForTest(StaticFoo.class) // 2
public class StaticFooTest {
    @Test
    public void test() {
        PowerMockito.mockStatic(StaticFoo.class); // 3
        Mockito.when(StaticFoo.staticMethod()).thenReturn("BAR"); // 4
        
        String actual = StaticFoo.staticMethod();
        assertThat(actual).isEqualTo("BAR");
    }

}
  1. @RunWithにPowerMockRunnerを指定
  2. @PrepareForTestにモック化するクラスを指定
  3. PowerMockito#mockStaticでstaticクラスをモック化
  4. Mockito#whenでstaticメソッドの戻り値を設定