В поисках общего способа утверждать, что вызов метода сервисов аспектов делает вызов сервисному вызову более низкого уровня с тем же именем.
Наше приложение использует 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````` выше.