### Question:
CommandAspect { @Around(value = "commandExecute()") public Object afterCommandExecute(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { return aspectModifyService.modifyRetValWithTiming( proceedingJoinPoint, SegmentType.COMMAND ); }  @Around(value = "commandExecute()") Object afterCommandExecute(ProceedingJoinPoint proceedingJoinPoint);  }### Answer:
@Test public void afterCommandExecute() { Command<Integer, Integer> myCommand = new DoublingCommand(); AspectJProxyFactory factory = new AspectJProxyFactory(myCommand); CommandAspect aspect = new CommandAspect(aspectModifyService); factory.addAspect(aspect); Command<Integer, Integer> myCommandProxy = factory.getProxy(); when(transaction.startSegment(SEGMENT_NAME)) .thenReturn(segment); Mono<Integer> source = myCommandProxy.execute(4) .subscriberContext(COMMAND_CONTEXT); StepVerifier.create(source) .expectNext(8) .expectAccessibleContext() .contains(NewRelicTokenInjectorFilter.TOKEN_CONTEXT_KEY, token) .contains(NewRelicTokenInjectorFilter.TRANSACTION_CONTEXT_KEY, transaction) .then() .verifyComplete(); verify(transaction).startSegment(SEGMENT_NAME); verify(segment).end(); }