public class DBConnectionDAOImpl {
public List<String> getData{
return jdbcTemplate.query("Select abc from table_name ", (ResultSet rs) -> getAllData(rs));
}
public List<String> getAllData(ResultSet rs){
List<String> ls = new ArrayList<>();
try{
while(rs.next()){
ls.add(rs.getString("pk"));
}
return ls;
}catch(Exception e){
}
}
}
public class DBConnectionDAOImplTest {
@InjectMock
DBConnectionDAOImpl dbConnectionDAOImpl;
@MOck
JdbcTemplate jdbcTemplate;
@Test
public void getDataTest(){
ResultSet rs = Mockito.mock(ResultSet.class);
when(rs.next().thenReturn(true).thenReturn(false));
when(rs.getString("pk")).thenReturn("someVal");
when(dbConnectionDAOImpl.getAllData(rs)).thenReturn(new ArrayList<String>());
when(jdbcTemplate.query("Select abc from table_name ", (ResultSet rs) -> dbConnectionDAOImpl.getAllData(rs))).thenReturn(new ArrayList<String>());
List<String> result = dbConnectionDAOImpl.getData();
assertNotNull(result);
}
when(dbConnectionDAOImpl.getAllData(rs)).thenReturn(new ArrayList<String>());
---编辑1--更改
when(dbConnectionDAOImpl.getAllData(rs)).thenReturn(new ArrayList<String>());
根据注释,断言是失败的。
在我的评论中提供的链接中,尝试更改:
when(dbConnectionDAOImpl.getAllData(rs)).thenReturn(new ArrayList<String>());
到
doReturn(new ArrayList<String>()).when(dbConnectionDAOImpl).getAllData(rs)
问题内容: 我已经开始发现Mockito库,并且有一个我没有找到正确答案的问题。 例如,如果我的UserDAO类中有将用户保存到数据库中的此类方法: 我应该如何测试? 如果我想测试一个DAO类,那么我需要创建一个模拟,模拟,模拟等吗?如此不测试数据库本身? 但是,如果我还想测试dao和数据库的行为怎么办? 您能否提供一些代码示例,可能有用的链接,并显示实现此目的的最佳方法? 问题答案: 这是使用M
我有一些使用Calendars编写的旧的方便方法,我想更新它们以使用Java8中引入的Java.time.*类。我类中的一些方法获取当前时间甚至只是当前小时的数量。 我计划为每个方法编写两个变体:一个假设时区是这台计算机上定义的默认时区,另一个允许用户指定所需的时区。 我想弄清楚两件主要的事情: 如何在我的方法中获取当前时间戳 如何使用不同的当前时间戳源对结果进行单元测试 关于方法本身,我倾向于创
customer-Mapper.xml daoimpl.java
我在java中使用mockito编写单元测试。 这就是我要测试的声明。 电影是电影名称的集合,是识别电影的关键。 我嘲笑了守望者班 Mockito.when(watcher.watch(Matchers.any(Set.class))) “thenReturn”中包括什么??
我有下面的类,我测试了method1,并模拟了method2和method3。我只测试这样的用例:*如果method2调用是OK,那么==>OK*如果method2抛出NotFoundException,method3返回OK==>OK*如果method2抛出NotFoundException,method3抛出ServiceException==>ServiceException确实抛出了 为了
我有DaoImpl类: 我的测试是: 测试是成功的,但是当我运行具有覆盖率的junit测试时,它显示方法没有被覆盖,因此我的整体单元测试行覆盖率低于要求。我们能涵盖那部分吗?如果是,我们怎么做?谢了。