Есть ли способ для пользовательской аннотации Спока перехватить выполнение функции перед выполнением каждого блока cleanup
? Я понимаю, что могу перехватить перед выполнением метода spe c s cleanup()
, но я надеялся перехватить функцию до содержимого блока cleanup
.
Для пример:
class Extension extends AbstractAnnotationDrivenExtension<Extension>{
@Override
void visitSpec(SpecInfo s){
s.addCleanupInterceptor(new Inter())
}
}
class Inter implements IMethodInterceptor{
@Override
void intercept(IMethodInvocation inv){
println inv.getMethod().getKind()
inv.proceed()
}
}
@CatchErrors
class SampleTest extends Specification {
def "A sample feature"(){
when:
foo()
then:
false
cleanup:
println "In cleanup block"
bar()
}
}
Который выводит: In cleanup block \n CLEANUP
В приведенном выше примере я хочу перехватить перед выполнением этого последнего блока cleanup
. Я пытался зарегистрировать перехватчик через addCleanupInterceptor
, когда я в visitSpec()
, но безрезультатно. Кажется, я не обращаюсь к этому перехватчику до тех пор, пока не будут выполнены все блоки функции, а не до того, как запустится bar ().