spring - verify(sessionRegistry, times(1)).getAllSessions(principle, true) 正在返回 null
问题描述
List<SessionInformation> sessions = sessionRegistry.getAllSessions(principle, true);
verify(sessionRegistry, times(1)).getAllSessions(principle, true).forEach(SessionInformation::expireNow);
第一行总是返回空列表,这是预期的,但每当我通过 Mockito.verify 调用时,它就会返回 null。
解决方案
验证不是这样工作的。在 verify 检查是否调用了方法时,没有必要返回或检查您作为模拟值提供的值。那么它为什么要退货呢?
例如,如果您已声明sessions
并存根某个方法,例如getAllSessions
返回它。为什么要通过验证来检查它是什么?它只验证在模拟上调用了一些存根方法。
如果您sessions
出于某种原因需要使用,请直接使用它。不通过验证。
再一次:你在你的模拟上存根方法你不测试那个方法,而是使用那个存根方法的其他方法。这就是嘲笑和存根的全部意义所在。您应该相信 Mockito 会履行其承诺并让代码使用您配置的存根方法。
推荐阅读
- react-native - 要求循环是允许的,但可能导致未初始化的值。考虑重构以消除对循环的需求
- java - Java:比较并替换字符串中的字符
- vb.net - 无法更改 datagridview 内的图像按钮
- php - joomla 在尝试运行我的项目时收到通知
- google-apps-script - 当我在另一个单元格上输入特定值时,我想现在自动将日期输入到一个单元格
- r - 使用 rfsrc 预测多元模型
- typescript - 如何为嵌套列表编写接口?
- dart - 在 TextFormField 中插入破折号
- javascript - 如何正确地将 .js 文件存储到浏览器的 Localstorage
- java - 如何在 AlertDialog 中添加更改数量的 EditText 对象