测试 JDBC 连接类



我尝试学习正确和持续地测试我的项目。不幸的是,有一些事情我不明白,因为关于这个话题有很多不同的意见。我不明白的是如何决定哪些类"值得"测试它们。作为一个例子,我从oracle中获取了JDBC连接类的示例:

public Connection getConnection() throws SQLException {
    Connection conn = null;
    Properties connectionProps = new Properties();
    connectionProps.put("user", this.userName);
    connectionProps.put("password", this.password);
    if (this.dbms.equals("mysql")) {
        conn = DriverManager.getConnection(
                   "jdbc:" + this.dbms + "://" +
                   this.serverName +
                   ":" + this.portNumber + "/",
                   connectionProps);
    } else if (this.dbms.equals("derby")) {
        conn = DriverManager.getConnection(
                   "jdbc:" + this.dbms + ":" +
                   this.dbName +
                   ";create=true",
                   connectionProps);
    }
    System.out.println("Connected to database");
    return conn;
}
 

我知道我可以模拟对象,以便能够更孤立地看待班级。测试这样的类是否有用,或者我可以从做这样的事情中受益,看看理论上是否可以建立连接?

public class TestClass {
    @Mock
    private Connection conn;
    @Mock
    private Database database;
    @BeforeEach
    public void setUp() throws Exception {
        assertNotNull(database);
        when(database.getConnection()).thenReturn(conn);
    }
}

单元测试中的模拟可帮助您测试代码中原本会使用资源的部分。使用它来测试一个类,它的唯一目的是建立与资源的连接是没有意义的。

此功能将在集成测试期间进行测试。在此处查看有关集成和单元测试的更多信息

相关内容

  • 没有找到相关文章

最新更新