Mock dao用于单元测试

时间:2012-06-01 09:28:26

标签: 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().createQuery(sql).setFirstResult(max* (p- 1)).setMaxResults(max).list());
    return o;
}

内在的东西:

    @Override
public List<T> getList(int maxResults, int pageNumber) {
    List<T> list = new ArrayList<T>();

    //......

    return list;
}

1 个答案:

答案 0 :(得分:1)

致电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;
}