オブジェクトを生成するためのファクトリを作成しました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(...);
}
詳しくは: