尝试模拟Querydsl的SQLQueryFactory进行DAO单元测试。首次使用Mockito的深层存根。 以下是失败的最小代码
@Test
void tryMockQueryDsl() {
SQLQueryFactory sql = Mockito.mock(SQLQueryFactory.class,Mockito.RETURNS_DEEP_STUBS);
Mockito.when(sql.select(ArgumentMatchers.<Expression<?>>any())
.from(ArgumentMatchers.<Expression<?>>any())
.fetchFirst()
).thenReturn(null);
}
,但以下情况除外:
java.lang.ClassCastException:com.querydsl.sql.ProjectableSQLQuery $ MockitoMock $ 1584151766类不能转换为com.querydsl.sql.SQLQuery类(com.querydsl.sql.ProjectableSQLQuery $ MockitoMock $ 1584151766和com.querydsl.sql。 SQLQuery位于加载程序“ app”的未命名模块中)
可能是什么问题?