Java 用于单元测试的模拟dao

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

我想开发一个模拟我的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().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应用程序中进行了分页。对不起,页码与初始页相同。我在我的网络应用程序中进行了分页。我想就是这样了。唯一的问题是我不理解“页面大小”的含义。这是您希望每页显示的项目数。