Здесь можно протестировать три разные вещи:
- Ваши баллы соответствуют тому, что вы ожидаете?
- Ваш совет ссылается на правильный pointcut?
- Совет делает так, как вы ожидаете?
Чтобы проверить контрольные точки, вы можете определить некоторые типы тестов, которые имеют те же сигнатуры пакета / типа / метода, что и предполагаемые «реальные» цели, а затем определить рекомендации по тестированию контрольных точек, чтобы убедиться, что они совпадают (также определить некоторые типы это не должно быть согласовано, чтобы гарантировать, что pointcut не слишком либеральны). Обычно я делаю это, определяя рекомендации по обратному вызову метода в цели теста, устанавливая флаг, а затем утверждая, что флаг установлен.
Проверить совет сложнее. Я склонен делегировать весь совет для обычного метода, а затем сосредоточиться на тестировании метода, а не на совете.
Если вы сделали это, единственная недостающая часть - это то, что ваш совет применяется к правильным точечным вызовам и фактически вызывает методы. Если вы обеспокоены тем, что это может быть проблемой, вы можете сделать это, создав другой аспект , который соответствует выполнению вашего совета и устанавливает флаг, чтобы показать, что ожидаемый делегированный метод был вызван аспектом, и переопределить метод для ничего не делать.