junit:数据库测试连接函数测试

gdrx4gfi  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(343)

我编写了一个函数,该函数需要数据库连接的详细信息,如jdbcurl、用户名和密码,并测试具有给定详细信息的连接是否成功。

public boolean testConnection(String jdbcUrl, String userName, String password) {

        try (Connection conn = DriverManager.getConnection(jdbcUrl, userName, password)) {

            if (conn != null) {
                return true;
            }

        } catch (SQLException e) {
            System.err.format("SQL State: %s\n%s", e.getSQLState(), e.getMessage());
        }
        return false;
    }

我不明白如何用junit测试它。看起来静态函数不能被模仿。任何帮助都会很好。

k4ymrczo

k4ymrczo1#

你可以利用mockito。

@Mock
    private DataSource ds;
    @Mock
    private Connection con;
    @Mock
    private PreparedStatement stmt;
    @Mock
    private ResultSet rs;

 @Before
 public void init() throws Exception {
       Assert.assertNotNull(ds);
       Mockito.when(c.prepareStatement(any(String.class))).thenReturn(stmt);
       Mockito.when(ds.getConnection()).thenReturn(conn);

​}

相关问题