如何模拟CriteriaQuery.whereEntityRoot.getID.inList <Integer>

问题描述

我正在尝试模拟功能块

    @Mock
    private EntityManager entityManager;

    @Mock
    private CriteriaBuilder criteriaBuilder;

    @Mock
    CriteriaQuery<Entity> criteriaQuery;

    @Mock
    TypedQuery<Entity> typedQuery;

    @Mock
    Predicate predicate;

    @Mock
    Root<Entity> EntityRoot;



 criteriaQuery.where(criteriaBuilder.and(
    EntityRoot.get(ID).in(request.getIdList()),criteriaBuilder.greaterThanOrEqualTo(EntityRoot.get(columnName),Request.getTimeRangeFilter().getStartDate())));

ID-静态字符串

我尝试使用以下代码进行模拟

when(criteriaQuery.where(criteriaBuilder.and(predicate,predicate))).thenReturn(criteriaQuery);

但对于行EntityRoot.get(ID).in(request.getIdList())

我收到以下错误

https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz

我在这里做什么错

解决方法

@Mock
Path<Object> path; 

when(EntityRoot.get(anyString())).thenReturn(path);
        when(path.in(Mockito.anyList())).thenReturn(predicate);

此解决方案终于奏效了。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...