Java 如何编写单元测试(JUnit)来使用DAO类检查数据库连接?
我有一个名为PersonDAO的DAO类,我正在使用它从数据库中获取有关人员的信息。我想编写单元测试来检查数据库连接。这就是我目前所拥有的Java 如何编写单元测试(JUnit)来使用DAO类检查数据库连接?,java,database,unit-testing,junit,dao,Java,Database,Unit Testing,Junit,Dao,我有一个名为PersonDAO的DAO类,我正在使用它从数据库中获取有关人员的信息。我想编写单元测试来检查数据库连接。这就是我目前所拥有的 @Test( expected= SQLException.class) public void testDatabaseConnection() throws Exception { } 另外,如何为findAll()方法编写单元测试?这是我在地图中存储人员信息时所拥有的。但是,我想知道如果我有一个数据库而不是地图,会有什么变化 @Test
@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() );
}
@测试
公共void testFindAll()
抛出异常{
Mappeople=newlinkedhashmap();
people=PersonDAO.findAll();
assertEquals(PersonDTO.gettotalept(),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。。。这是一个答案。基本上,如果您想在“实时”数据库上测试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。。。这是一个答案。基本上,如果您想在“实时”数据库上测试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。。。这是一个答案。基本上,如果您想在“实时”数据库上测试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。。。这是一个答案。看看这个问题来回答您的第一个问题-如何创建数据库连接。
要回答第二个问题,关于如何测试
“findAll”
,您需要问问自己这个方法的作用是什么。例如,它会带来所有用户记录,然后首先检查表中有多少用户,并将其存储在一个变量中。然后插入另一个用户,再次调用findAll并计算返回的行数。然后测试您是否有previousCount+1==currentCount
看看这个问题来回答您的第一个问题-如何创建数据库连接。
要回答第二个问题,关于如何测试
“findAll”
,您需要问问自己这个方法的作用是什么。例如,它会带来所有用户记录,然后首先检查表中有多少用户,并将其存储在一个变量中。然后插入另一个用户,再次调用findAll并计算返回的行数。然后测试您是否有previousCount+1==currentCount
看看这个问题来回答您的第一个问题-如何创建数据库连接。
要回答第二个问题,关于如何测试
“findAll”
,您需要问问自己这个方法的作用是什么。例如,它会带来所有用户记录,然后首先检查表中有多少用户,并将其存储在一个变量中。然后插入另一个用户,再次调用findAll并计算返回的行数。然后测试您是否有previousCount+1==currentCount
看看这个问题来回答您的第一个问题-如何创建数据库连接。
要回答第二个问题,关于如何测试
“findAll”
,您需要问问自己这个方法的作用是什么。例如,它会带来所有用户记录,然后首先检查表中有多少用户,并将其存储在一个变量中。然后插入另一个用户,再次调用findAll并计算返回的行数。然后测试是否有previousCount+1==currentCount
单元测试不是一种不同的语言或方法。测试数据库连接的方法与在主程序中建立连接的方法相同。要测试findAll,请首先测试数据库中当前有多少个值,然后添加一个值…然后再次计数。测试必须是previousCount+1=CurrentCount,但我不确定测试数据库连接的语法。我假设我们需要使用连接类。你能告诉我语法吗?好的,我明白你的疑问。没有SQL语句来检查连接是否已建立。只要试着去拿一张唱片。如果没有连接,就会出现错误。我需要为此编写SQL查询吗?例如:让所有人使用“选择*”?单元测试不是一种不同的语言或方法。测试数据库连接的方法与在主程序中建立连接的方法相同。要测试findAll,请首先测试数据库中当前有多少个值,然后添加一个值…然后再次计数。测试必须是previousCount+1=CurrentCount,但我不确定测试数据库连接的语法。我假设我们需要使用连接类。你能告诉我语法吗?好的,我明白你的疑问。没有SQL语句来检查连接是否已建立。只要试着去拿一张唱片。如果没有连接,就会出现错误。我需要为此编写SQL查询吗?例如:让所有人使用“选择*”?单元测试不是一种不同的语言或方法。测试数据库连接的方法与在主程序中建立连接的方法相同。要测试findAll,请首先测试数据库中当前有多少个值,然后添加一个值…然后再次计数。测试必须是previousCount+1=CurrentCount,但我不确定测试数据库连接的语法。我假设我们需要使用连接类。你能告诉我语法吗?好的,我明白你的疑问。没有SQL语句来检查连接是否已建立。只要试着去拿一张唱片。如果没有连接,就会出现错误。我需要为此编写SQL查询吗?例如:让所有人使用“选择*”?单元测试不是一种不同的语言或方法。测试数据库连接的方法与在主程序中建立连接的方法相同。要测试findAll,请首先测试数据库中当前有多少个值,然后添加一个值…然后再次计数。测试必须是previousCount+1=CurrentCount,但我不确定测试数据库连接的语法。我是阿苏米