繁体   English   中英

如何编写单元测试(JUnit)以使用DAO类检查数据库连接?

[英]How do I write unit test (JUnit) to check Database connection using DAO class?

我有一个名为PersonDAO的DAO类,并且正在使用它从数据库中获取有关People的信息。 我想编写单元测试来检查数据库连接。 这就是我到目前为止

@Test( expected= SQLException.class)
public void testDatabaseConnection()
    throws Exception {



}

另外,如何为findAll()方法编写单元测试? 如果我在地图上存储人员信息,这就是我所拥有的。 但是,我想知道如果我有数据库而不是地图会发生什么变化

@Test
public void testFindAll()
    throws Exception {

    Map< Integer, PersonDTO > people = new LinkedHashMap<>();
    people = PersonDAO.findAll();

    assertEquals( PersonDTO.getTotalDept(), people.size() );
}

基本上,如果您要在“实时”数据库上测试DAO,则是在谈论集成测试。

PersonDTO personDto;
Connection connection;

@Before
public void setUp() {
    personDto = new PersonDTO();
    connection = ConnectionUtil.someMethodThatReturnsConnection();
}

@Test
public void testIfConnectionNotNull() {
    assertNotNull(connection);
}

@Test
public void testIfDAONotNull() {
    assertNotNull(personDto);
}

@Test
public void testFindAll() {
    // Let's presume you have 4 records
    assertEquals(4, personDto.findAll().size());
}

如果您想继续使用JUnit,则可以选择Mockito,EasyMock...。

看一下这个问题,回答您的第一个问题-如何创建数据库连接。 用于连接数据库的JUNIT测试用例

要回答关于如何测试"findAll"的第二个问题,您需要问问自己这种方法的作用。 例如,它带来了所有用户记录,然后首先检查表中有多少用户并将其存储在变量中。 然后插入另一个用户,并再次调用findAll并计算返回的行数。 然后测试您是否具有previousCount + 1 == currentCount

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM