我的单元测试中有以下代码可以模拟数据库调用:
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;
通过此更改,它现在可以工作。
不幸的是,该错误消息不是很有帮助