【问题标题】:Mock dao for Unit Testing用于单元测试的 Mock dao
【发布时间】:2012-06-01 09:28:25
【问题描述】:

我想开发我的 dao 类的 Mock。如何模拟我的 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;
}

【问题讨论】:

    标签: java hibernate unit-testing generics junit


    【解决方案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;
    }
    

    【讨论】:

    • 你能告诉我 getListByPage 方法的可能实现吗?谢谢
    • 页码是存在的总页数。我在我的网络应用程序中进行了分页。
    • 对不起,页码是初始页。我在我的网络应用中进行了分页。
    • 我想就是这样。唯一的问题是我不明白“pageSize”的含义。
    • 这是您希望每页显示的项目数。
    猜你喜欢
    • 2010-09-28
    • 2018-10-17
    • 2011-04-11
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 2013-08-26
    • 1970-01-01
    相关资源
    最近更新 更多