【发布时间】:2020-06-18 04:37:27
【问题描述】:
我一直在尝试找到一种方法来为以下函数编写一个简单的单元测试用例,但无法弄清楚任何事情。该函数基本上在 QueryDSL Q 类上使用 JPA Query,并将结果作为 Map 返回。任何示例代码就足够了。如何模拟整个 JPA 查询以返回 Map 。
@Autowired
EntityManager entityManager;
public Map<Integer, Double> getUsersCategoryAppliedBudgetMap(int opportunityTypeId, LocalDate startDate,
LocalDate endDate) {
QApplications applicationPath = QApplications.applications;
JPAQuery<ApplicationApprovals> query = new JPAQuery<>(entityManager);
log.info("Executing Budget Query for opportunity type" + opportunityTypeId);
return query.from(applicationPath).where(applicationPath.applicationStatus.id
.in(PENDING_APPROVAL.getId(), SENT_BACK.getId(), APPROVED.getId(), PENDING_WITHDRAW_APPROVAL.getId(),
PENDING_COMPLETION_DOCUMENT.getId(), REVIEW_COMPLETION_DOCUMENT.getId(), COMPLETED.getId())
.and(applicationPath.opportunity.opportunityTypes.id.eq(opportunityTypeId))
.and(applicationPath.appliedDate.between(startDate.atStartOfDay(), endDate.atTime(LocalTime.MAX))))
.groupBy(applicationPath.user.id)
.transform(GroupBy.groupBy(applicationPath.user.id).as(applicationPath.cost.sum()));
}
【问题讨论】:
标签: java mockito junit5 spring-test