java - 使用 Mockito 将方面服务调用一般断言到较低层
问题描述
寻找一种通用方法来断言对方面服务方法的调用会调用同名的较低级别的服务调用。
我们的应用程序使用 OSGI 和方面服务,其中有多个相同接口的实现,每个实现都调用到较低层,并可能进行一些后期处理。例如...
public interface ConfigService {
public List<String> getConfigurations();
}
public class ConfigServiceImpl implements ConfigService {
private volatile ConfigDAO dao;
@Override
public List<String> getConfigurations() {
List<String> configs = dao.getConfigurations();
// do something with configs
return configs;
}
}
public class ConfigDAO implements ConfigService {
@Override
List<String> getConfigurations() {
// database calls
return configs;
}
}
我想提出一个通用方法,verifyCallsDelegate(configService, mockConfigDao, "getConfigurations");
类似于
configService().getConfigurations();
verify(mockConfigDao).getConfigurations();
这是一个人为的例子,我可能想更进一步,断言返回的值mockConfigDao.getConfigurations()
是返回的值,configService.getConfigurations()
但是一旦我通过最简单的测试工作,我将添加这种智能。
任何人都可以为我上面的 ```verifyCallsDelegate```` 方法建议一个实现或类似的技术。
解决方案
推荐阅读
- firebase - Firebase Firestore“地图”存储大小
- javascript - GitHub 文本编辑
- java - 使用 Jenkins 管道生成 .jar 文件
- javascript - React:setState 钩子闭包运行两次
- c# - 正确使用会话和静态变量
- spring - Spring Integration TCP客户端在发送字节流后无法保持连接
- java - 如何为每个通道将 PCM 流拆分为 AudioInputStreams?
- django - Python,Django3 错误“QuerySet”对象没有属性“模式”
- javascript - 在 JavaScript ES6 类上声明方法的不同方式?
- django - 如何将所有环境变量从我的 shell 传递到它调用的 bash 脚本?