gpt4 book ai didi

java - 使用 Mockito 模拟静态方法

转载 作者:行者123 更新时间:2023-12-02 01:14:59 24 4
gpt4 key购买 nike

我编写了一个工厂来生成 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。有没有一种好方法来模拟/验证这个特定的用例?

最佳答案

使用PowerMockito在 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(...);

}

更多信息:

关于java - 使用 Mockito 模拟静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57664268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com