Mockito で静的メソッドをモックする 質問する

Mockito で静的メソッドをモックする 質問する

オブジェクトを生成するためのファクトリを作成しましたjava.sql.Connection:

public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory {

    @Override public Connection getConnection() {
        try {
            return DriverManager.getConnection(...);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

に渡されるパラメータを検証したいのですDriverManager.getConnectionが、静的メソッドをモックする方法がわかりません。テストケースには JUnit 4 と Mockito を使用しています。この特定のユースケースをモック/検証する良い方法はありますか?

ベストアンサー1

使用パワーモッキートMockitoの上に。

コード例:

@RunWith(PowerMockRunner.class)
@PrepareForTest(DriverManager.class)
public class Mocker {

    @Test
    public void shouldVerifyParameters() throws Exception {

        //given
        PowerMockito.mockStatic(DriverManager.class);
        BDDMockito.given(DriverManager.getConnection(...)).willReturn(...);

        //when
        sut.execute(); // System Under Test (sut)

        //then
        PowerMockito.verifyStatic();
        DriverManager.getConnection(...);

    }

詳しくは:

おすすめ記事