我的单元测试中有以下代码可以模拟数据库调用:

Mockito.when(valueRepository.findAllByDateBetweenAndValueContent_BoolVal(
        any(LocalDate.class),
        any(LocalDate.class),
        anyBoolean()
)).thenReturn(new ArrayList<>());


每当我尝试运行代码时,都会出现以下错误:

org.springframework.dao.InvalidDataAccessApiUsageException: Value must not be null!; nested exception is java.lang.IllegalArgumentException: Value must not be null!


我试图弄乱返回值和输入(任何...),但是我找不到解决方案,而且我真的不明白什么值是null /春天在抱怨什么。

valueRepository-变量已正确初始化,我通过调试检查了它是否不为null。

最佳答案

我发现了我的错误:我使用Autowired而不是MockBean插入了valueRepository变量:

错误/之前:

@Autowired
ValueRepository valueRepository;


正确/之后:

@MockBean
ValueRepository valueRepository;


通过此更改,它现在可以工作。
不幸的是,该错误消息不是很有帮助

10-05 21:10