【问题标题】:Simple JDBC connection test with JUnit使用 JUnit 进行简单的 JDBC 连接测试
【发布时间】:2012-12-09 07:21:19
【问题描述】:

我想要简单的 JDBC 连接测试,我不使用框架,只使用 JDBC 和 JUnit。我可以用 JUnit 执行这个测试吗?我什至不知道如何测试加载驱动程序,请给我一些连接测试的例子。

连接客户端:

package newpackage.db;

import java.sql.Connection;
import java.util.logging.Level;
import java.util.logging.Logger;

public class SqlConnection {
    private Connection con;
    private String name;
    private String url;
    private String password;
    private String driver;

    public SqlConnection() {
        this.name = "root";
        this.password = "12345";
        this.url = "";
        this.driver = "com.mysql.jdbc.Driver";
    }

    public Connection getConnection() {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(SqlConnection.class.getName()).log(Level.SEVERE, null, ex);
        }

        return null;
    }
}

测试用例:

public void testDriverManager() {
    SqlConnection conClient = new SqlConnection();
    assertEquals(conClient.getConnection(),...);
    or
    assertTrue(conClient.getConnection(),...);
}

【问题讨论】:

  • 你尝试的时候发生了什么?
  • 你的测试有什么意义(换句话说你想在这里测试什么)
  • 重点是检查驱动程序是否正确加载,我只是尝试通过测试覆盖所有数据库内容,以确保从驱动程序加载到所有查询一切正常。

标签: java testing jdbc junit


【解决方案1】:

基本上,您可以按照驱动程序管理器的指南来建立连接。

http://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

对连接的最佳测试是从数据库中读取一些基本内容。例如。从双选1

请注意,此测试需要一个正在运行的数据库!将这些集成测试的数量保持在较低水平,因为它们不能很好地扩展并且需要给定的特定环境。它使持续集成例如Hudson 有点困难,因为您必须在所有持续集成服务器节点上安装数据库并保持其运行。

【讨论】:

  • 您是否建议执行一个 SELECT 查询然后运行测试。比较像:asserEquals(selectedInfo, realDataFromDB);以字符串类型为例?
  • 不,我提到的选择我宁愿用于测试连接的健全性。在从连接池或类似的连接池中返回连接之前,您还可以使用它来测试连接。只需打开一个连接,运行语句并检查是否没有引发异常。无需检查 mySQL 是否真的返回 1。
  • 我明白了,那么我需要什么工具来进行严肃的测试查询或异常处理就足够了?
  • dbunit.org/intro.html 使您能够进行真正的数据库测试。它允许您插入基于 xml 的测试数据并对其执行一些操作。在每个测试用例之后,它会回滚您的更改。很酷的框架。无论如何,可以写一本关于数据库测试的书。我建议您试一试,然后再提出更详细的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 2015-07-08
  • 1970-01-01
相关资源
最近更新 更多