用Mockito模拟静态方法

我编写了一个工厂来生产java.sql.Connection对象:

公共类MySQLDatabaseConnectionFactory实现DatabaseConnectionFactory{
@重写公共连接getConnection(){
试一试{
返回DriverManager.getConnection(…);
}捕获(SQLE异常){
抛出新的运行时异常(e);
}
}
}

我想验证传递给DriverManager.getConnection的参数,但我不知道如何模拟静态方法。我在测试用例中使用JUnit4和Mockito。有没有一种好的方法来模拟/验证这个特定的用例

使用PowerMockito位于Mockito之上

示例代码:

@RunWith(PowerMockRunner.class)
@PrepareForTest(DriverManager.class)
公共类嘲笑者{
@试验
public void shouldVerifyParameters()引发异常{
//给定
mockStatic(DriverManager.class);
给定(DriverManager.getConnection(…).willReturn(…);
//什么时候
execute();//正在测试的系统(sut)
//然后
PowerMockito.verifyStatic();
获取连接(…);
}

更多信息:

发表评论