Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Java by (2.6k points)

I've written a factory to produce java.sql.Connection objects:

public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory {

    @Override public Connection getConnection() {

        try {

            return DriverManager.getConnection(...);

        } catch (SQLException e) {

            throw new RuntimeException(e);

        }

    }

}

I'd like to validate the parameters passed to DriverManager.getConnection, but I don't know how to mock a static method. I'm using JUnit 4 and Mockito for my test cases. Is there a good way to mock/verify this specific use-case?

1 Answer

0 votes
by (46k points)

Try PowerMockito on head of Mockito.

Example code:

@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(...);

}

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
asked Sep 30, 2019 in Java by Anvi (10.2k points)
Welcome to Intellipaat Community. Get your technical queries answered by top developers!

30.4k questions

32.5k answers

500 comments

108k users

Browse Categories

...