Java JDBC连接的JUNIT测试用例

Java JDBC连接的JUNIT测试用例,java,testing,jdbc,exception-handling,junit,Java,Testing,Jdbc,Exception Handling,Junit,我只是想知道,如何测试JDBC连接性并形成JUNIT测试用例!有什么想法吗?单元测试不适合涵盖数据库连接。相反,集成测试涵盖了这一点。假设处理JDBC的类有一个返回连接的方法,您可以为连接编写一个不为null的测试,并提交查询并执行它们。这是一个使用Spring和JUnit1进行此集成测试的示例: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "/your/resource/package/your-spring-

我只是想知道,如何测试JDBC连接性并形成JUNIT测试用例!有什么想法吗?

单元测试不适合涵盖数据库连接。相反,集成测试涵盖了这一点。假设处理JDBC的类有一个返回
连接的方法
,您可以为连接编写一个不为
null的测试,并提交查询并执行它们。这是一个使用Spring和JUnit1进行此集成测试的示例:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/your/resource/package/your-spring-config.xml" })
public class YourJdbcClassTest {

    //this will inject an instance of the class that access and manages your JDBC resources
    @Autowired
    YourJdbcClass yourJdbcClass;

    //test the database connection
    @Test
    public void testGetConnection() throws SQLException {
        Connection con = yourJdbcClass.getConnection();
        Assert.assertNotNull(con);
        Assert.assertTrue(con.isValid(0));
        con.close();
    }
}
然后,只需为与JDBC交互的其他方法创建测试。另外,这可以用于代码覆盖,但如果您使用的是Spring或任何其他已经处理了资源注入的框架(如
连接
),那么这种测试将是无用的,因为它包含在每个集成测试用例中


1请注意,将Sprint添加到JUnit测试将使您能够进行集成测试。从:

测试是企业软件开发的一个组成部分。本章重点介绍IoC原则对单元测试的附加值,以及Spring框架支持集成测试的好处


单元测试不适合覆盖数据库连接。相反,集成测试涵盖了这一点。假设处理JDBC的类有一个返回
连接的方法
,您可以为连接编写一个不为
null的测试,并提交查询并执行它们。这是一个使用Spring和JUnit1进行此集成测试的示例:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/your/resource/package/your-spring-config.xml" })
public class YourJdbcClassTest {

    //this will inject an instance of the class that access and manages your JDBC resources
    @Autowired
    YourJdbcClass yourJdbcClass;

    //test the database connection
    @Test
    public void testGetConnection() throws SQLException {
        Connection con = yourJdbcClass.getConnection();
        Assert.assertNotNull(con);
        Assert.assertTrue(con.isValid(0));
        con.close();
    }
}
然后,只需为与JDBC交互的其他方法创建测试。另外,这可以用于代码覆盖,但如果您使用的是Spring或任何其他已经处理了资源注入的框架(如
连接
),那么这种测试将是无用的,因为它包含在每个集成测试用例中


1请注意,将Sprint添加到JUnit测试将使您能够进行集成测试。从:

测试是企业软件开发的一个组成部分。本章重点介绍IoC原则对单元测试的附加值,以及Spring框架支持集成测试的好处


单元测试不适合覆盖数据库连接。相反,集成测试涵盖了这一点。假设处理JDBC的类有一个返回
连接的方法
,您可以为连接编写一个不为
null的测试,并提交查询并执行它们。这是一个使用Spring和JUnit1进行此集成测试的示例:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/your/resource/package/your-spring-config.xml" })
public class YourJdbcClassTest {

    //this will inject an instance of the class that access and manages your JDBC resources
    @Autowired
    YourJdbcClass yourJdbcClass;

    //test the database connection
    @Test
    public void testGetConnection() throws SQLException {
        Connection con = yourJdbcClass.getConnection();
        Assert.assertNotNull(con);
        Assert.assertTrue(con.isValid(0));
        con.close();
    }
}
然后,只需为与JDBC交互的其他方法创建测试。另外,这可以用于代码覆盖,但如果您使用的是Spring或任何其他已经处理了资源注入的框架(如
连接
),那么这种测试将是无用的,因为它包含在每个集成测试用例中


1请注意,将Sprint添加到JUnit测试将使您能够进行集成测试。从:

测试是企业软件开发的一个组成部分。本章重点介绍IoC原则对单元测试的附加值,以及Spring框架支持集成测试的好处


单元测试不适合覆盖数据库连接。相反,集成测试涵盖了这一点。假设处理JDBC的类有一个返回
连接的方法
,您可以为连接编写一个不为
null的测试,并提交查询并执行它们。这是一个使用Spring和JUnit1进行此集成测试的示例:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/your/resource/package/your-spring-config.xml" })
public class YourJdbcClassTest {

    //this will inject an instance of the class that access and manages your JDBC resources
    @Autowired
    YourJdbcClass yourJdbcClass;

    //test the database connection
    @Test
    public void testGetConnection() throws SQLException {
        Connection con = yourJdbcClass.getConnection();
        Assert.assertNotNull(con);
        Assert.assertTrue(con.isValid(0));
        con.close();
    }
}
然后,只需为与JDBC交互的其他方法创建测试。另外,这可以用于代码覆盖,但如果您使用的是Spring或任何其他已经处理了资源注入的框架(如
连接
),那么这种测试将是无用的,因为它包含在每个集成测试用例中


1请注意,将Sprint添加到JUnit测试将使您能够进行集成测试。从:

测试是企业软件开发的一个组成部分。本章重点介绍IoC原则对单元测试的附加值,以及Spring框架支持集成测试的好处


问题是我不认为JDBC连接性是一个需要进行单元测试的问题。JDBC连接依赖于环境,单元测试应该只依赖于代码(和测试相关资源)。也许您需要的是设置集成测试(),即使这样,我也不确定这是否是您所需要的


如果您需要从开发工作站检查JDBC连接,请注意,您放入单元测试的所有内容都将在整个测试套件中执行(即使是在您的CI环境中,假设您有测试套件),因此如果您有测试套件,它可能会污染您的持续集成和交付流程。如果您需要在开发工作站中检查某些内容,最好让您的IT或运营部门检查,或在其工作站设置过程中包括端口打开等。

问题是,我不认为JDBC连接是一个需要进行单元测试的问题。JDBC连接依赖于环境,单元测试应该只依赖于代码(和测试相关资源)。也许您需要的是设置集成测试(),即使这样,我也不确定这是否是您所需要的

如果您需要从开发工作站检查JDBC连接,请注意,您放入单元测试的所有内容都将在整个测试套件中执行(即使是在您的CI环境中,假设您有测试套件),因此如果您有测试套件,它可能会污染您的持续集成和交付流程。如果