### Question:
WeaverComponentAbstract implements WeaverComponent<T> { @Override public T build() throws Throwable { callback.before(this); T result = buildComponent(); callback.after(this); return result; } WeaverComponentAbstract(ComponentType componentType, RxLogger.Scope scope, ProceedingJoinPoint joinPoint, MessageManager messageManager, Callback callback); @Override T build(); @Override ComponentType getComponentType(); @Override MessageManager getMessageManager(); @Override ComponentInfo getComponentInfo(); @Override ProceedingJoinPoint getJoinPoint(); @Override RxLogger.Scope getScope();  }### Answer:
@Test public void build() throws Throwable { Observable result = weaverComponent.build(); verify(callback).before(weaverComponent); verify(callback).after(weaverComponent); assertEquals(observable, result); }