我编写了一个工厂来生产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();
获取连接(…);
}
更多信息: