【发布时间】:2021-02-23 03:59:22
【问题描述】:
我想为 EntityManager 编写 junit,但无法模拟 EntityManager。我的服务类方法如下:
@PersistenceContext
private EntityManager em;
public List<Items> getItems() {
Order order = Order.desc("ASC");
Criteria crit = em.unwrap(Session.class).createCriteria(Items.class);
Criteria critRowCount = em.unwrap(Session.class).createCriteria(Items.class);
crit.add(Restrictions.eq("createdBy", "John"));
critRowCount.add(Restrictions.eq("createdBy", "John"));
crit.setFirstResult((pageNo - 1) * pageSize);
crit.setMaxResults(pageSize);
crit.addOrder(order);
List<Items> items = crit.list();
critRowCount.add(Restrictions.sqlRestriction("Query"));
critRowCount.setProjection(Projections.rowCount()).uniqueResult();
return items;
}
我在我的口味中使用过:
@MockBean
private EntityManager em;
当我在服务中调用下面的方法时
List<Items> items = crit.list();
这将击中 DB。请帮我解决问题。
提前致谢!
【问题讨论】:
标签: java spring-boot unit-testing junit junit5