通常使用Mockito声明对较低层的方面服务调用

时间:2019-05-25 22:22:19

标签: java mockito aspect

寻找一种通用方法来断言对方面服务方法的调用会导致对具有相同名称的较低级别服务的调用。

我们的应用程序使用OSGI和Aspect服务,其中有多个相同接口的实现,每个实现都调用较低的层,并可能进行一些后处理。例如...

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``方法提出实现或类似技术的建议。

0 个答案:

没有答案