首页 > 解决方案 > 使用 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```` 方法建议一个实现或类似的技术。

标签: javamockitoaspect

解决方案


推荐阅读