Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JUnit进行简单的JDBC连接测试_Java_Testing_Jdbc_Junit - Fatal编程技术网

Java 使用JUnit进行简单的JDBC连接测试

Java 使用JUnit进行简单的JDBC连接测试,java,testing,jdbc,junit,Java,Testing,Jdbc,Junit,我想要对JDBC连接进行简单的测试,我不使用框架,只使用JDBC和JUnit。我可以用JUnit执行这个测试吗?我甚至不知道如何测试加载驱动程序,请给我一些连接测试的例子 连接客户端: package newpackage.db; import java.sql.Connection; import java.util.logging.Level; import java.util.logging.Logger; public class SqlConnection { privat

我想要对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(),...);
}

基本上,您可以按照drivermanager的本指南建立连接

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


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

当你尝试它的时候发生了什么?你测试的重点是什么(换句话说,你想在这里测试什么)重点是检查驱动程序是否正确加载,我只是尝试用测试覆盖所有数据库内容,以确保从驱动程序加载到所有查询都正常工作。你建议执行一个选择查询,然后运行测试吗。将进行如下比较:asserEquals(selectedInfo,realDataFromDB);例如,在字符串类型中?不,我所提到的选择是为了测试连接的健全性。这是一条语句,在从连接池或类似连接返回连接之前,您还可以使用它来测试连接。只需打开一个连接,运行该语句并检查是否未引发异常。不需要检查mySQL是否真的返回了1。我捕捉到了它,那么我需要什么工具来进行认真的测试查询或异常处理就足够了?使您能够进行真正的数据库测试。它允许您插入基于xml的测试数据并对其执行一些操作。在每个测试用例之后,它回滚您的更改。非常酷的框架。无论如何,人们可以写一本关于数据库测试的书。我建议你尝试一下,然后再提出更详细的问题。