Java 如何在Junit中模拟查询类?

Java 如何在Junit中模拟查询类?,java,junit,mockito,Java,Junit,Mockito,我想通过模拟查询为我的DAO类编写JUNIT测试用例。我该怎么做?下面是代码 public class UserDao{ public List<User> getUserList(String query, Session session){ List<User> userList = new ArrayList<User>(); try{ Query query = session.createSQLQuery(query); List<Objec

我想通过模拟查询为我的DAO类编写JUNIT测试用例。我该怎么做?下面是代码

public class UserDao{

public List<User> getUserList(String query, Session session){
List<User> userList = new ArrayList<User>();
try{
Query query = session.createSQLQuery(query);
List<Object[]> objList = query.getResultList();
if(objList!=null && !objList.isEmpty()){
for(Object[] o : objList){
User user = new User();
//populate user values
userList.add(user);
}
}
} catch(Exception e){
  System.out.println(e.getMessage());
}
return userList;

}
公共类UserDao{
公共列表getUserList(字符串查询,会话){
List userList=new ArrayList();
试一试{
Query Query=session.createSQLQuery(查询);
List objList=query.getResultList();
if(objList!=null&&!objList.isEmpty()){
for(对象[]o:objList){
用户=新用户();
//填充用户值
添加(用户);
}
}
}捕获(例外e){
System.out.println(e.getMessage());
}
返回用户列表;
}
您可以使用类似这样的框架,您还必须模拟会话,以使createSqlQuery返回模拟的查询对象。然后使Query返回您所期望的任何结果。