然后,使用any()返回Mockito错误“值不能为空”

时间:2019-04-24 17:12:54

标签: java spring unit-testing junit mockito

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

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!

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

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

1 个答案:

答案 0 :(得分:0)

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

错误/之前:

@Autowired
ValueRepository valueRepository;

正确/之后:

@MockBean
ValueRepository valueRepository;

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