Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Java by (10.2k 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 this 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(...);

}

check out for More information:

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Browse Categories

...