Java 用于单元测试的模拟dao
我想开发一个模拟我的dao类。如何模拟我的GenericDao的以下方法Java 用于单元测试的模拟dao,java,hibernate,unit-testing,generics,junit,Java,Hibernate,Unit Testing,Generics,Junit,我想开发一个模拟我的dao类。如何模拟我的GenericDao的以下方法 public List<T> getList(int max, int p) throws DataAccessException { String t= type.getT(); String sql = "from " + t+ " order by id desc"; List<T> o= HibernateUtils(type, this.getSession
public List<T> getList(int max, int p) throws DataAccessException {
String t= type.getT();
String sql = "from " + t+ " order by id desc";
List<T> o= HibernateUtils(type, this.getSession().createQuery(sql).setFirstResult(max* (p- 1)).setMaxResults(max).list());
return o;
}
public List getList(int max,int p)抛出DataAccessException{
字符串t=type.getT();
字符串sql=“from”+t+“order by id desc”;
List o=HibernateUtils(type,this.getSession().createQuery(sql).setFirstResult(max*(p-1)).setMaxResults(max.List());
返回o;
}
这里面有些东西:
@Override
public List<T> getList(int maxResults, int pageNumber) {
List<T> list = new ArrayList<T>();
//......
return list;
}
@覆盖
公共列表getList(int-maxResults,int-pageNumber){
列表=新的ArrayList();
//......
退货清单;
}
调用getList()
,然后对结果使用subList()
方法将其剪切成页面
您需要使用LinkedHashMap
作为映射实现,以确保值的顺序不会更改
试试这个:
@Override
public List<T> getListByPage(int maxResults, int pageNumber) {
List<T> list = getList();
if( list.size() > maxResults ) {
list = list.subList( 0, maxResults );
}
int start = pageNumber * pageSize;
int end = Math.min( start + pageSize, list.size() );
if( list.size() < start ) {
list = new ArrayList<T>();
} else {
list = list.subList( start, end );
}
return list;
}
@覆盖
公共列表getListByPage(int-maxResults,int-pageNumber){
List=getList();
if(list.size()>maxResults){
列表=列表。子列表(0,maxResults);
}
int start=pageNumber*pageSize;
int end=Math.min(start+pageSize,list.size());
if(list.size()
调用getList()
,然后对结果使用subList()
方法将其剪切成页面
您需要使用LinkedHashMap
作为映射实现,以确保值的顺序不会更改
试试这个:
@Override
public List<T> getListByPage(int maxResults, int pageNumber) {
List<T> list = getList();
if( list.size() > maxResults ) {
list = list.subList( 0, maxResults );
}
int start = pageNumber * pageSize;
int end = Math.min( start + pageSize, list.size() );
if( list.size() < start ) {
list = new ArrayList<T>();
} else {
list = list.subList( start, end );
}
return list;
}
@覆盖
公共列表getListByPage(int-maxResults,int-pageNumber){
List=getList();
if(list.size()>maxResults){
列表=列表。子列表(0,maxResults);
}
int start=pageNumber*pageSize;
int end=Math.min(start+pageSize,list.size());
if(list.size()
您能告诉我getListByPage方法的可能实现吗?感谢页码是存在的总页数。我在我的Web应用程序中进行了分页。对不起,页码与初始页相同。我在我的网络应用程序中进行了分页。我想就是这样了。唯一的问题是我不理解“pageSize”的含义。这是您希望每页显示的项目数。您能告诉我getListByPage方法的可能实现吗?感谢页码是存在的总页数。我在我的Web应用程序中进行了分页。对不起,页码与初始页相同。我在我的网络应用程序中进行了分页。我想就是这样了。唯一的问题是我不理解“页面大小”的含义。这是您希望每页显示的项目数。