猿问

测试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);

    }

}


开心每一天1111
浏览 117回答 1
1回答

尚方宝剑之说

单元测试中的模拟可帮助您测试代码中原本会使用资源的部分。使用它来测试一个其唯一目的是建立与资源的连接的类是没有意义的。
随时随地看视频慕课网APP

相关分类

Java
我要回答